[tor-commits] [check/master] Dry out querystring parsing.
arlo at torproject.org
arlo at torproject.org
Thu Oct 3 02:19:20 UTC 2013
commit c656794133794c1acc9a0e7a74f0cd380c42a110
Author: Arlo Breault <arlolra at gmail.com>
Date: Wed Oct 2 19:18:47 2013 -0700
Dry out querystring parsing.
---
handlers.go | 20 ++------------------
utils.go | 15 +++++++++++++++
2 files changed, 17 insertions(+), 18 deletions(-)
diff --git a/handlers.go b/handlers.go
index 574f28f..39bb584 100644
--- a/handlers.go
+++ b/handlers.go
@@ -5,7 +5,6 @@ import (
"html/template"
"net"
"net/http"
- "strconv"
"time"
)
@@ -116,23 +115,8 @@ func BulkHandler(Layout *template.Template, Exits *Exits) func(http.ResponseWrit
return
}
- port_str := q.Get("port")
- port, err := strconv.Atoi(port_str)
- if err != nil {
- port = 80
- port_str = ""
- } else {
- port_str = "&port=" + port_str
- }
-
- n_str := q.Get("n")
- n, err := strconv.Atoi(n_str)
- if err != nil {
- n = 16
- n_str = ""
- } else {
- n_str = "&n=" + n_str
- }
+ port, port_str := GetQS(q, "port", 80)
+ n, n_str := GetQS(q, "n", 16)
str := fmt.Sprintf("# This is a list of all Tor exit nodes from the past %d hours that can contact %s on port %d #\n", n, ip, port)
str += fmt.Sprintf("# You can update this list by visiting https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=%s%s%s #\n", ip, port_str, n_str)
diff --git a/utils.go b/utils.go
index 46e00b2..eb8a66d 100644
--- a/utils.go
+++ b/utils.go
@@ -2,6 +2,7 @@ package main
import (
"encoding/json"
+ "fmt"
"github.com/samuel/go-gettext/gettext"
"html/template"
"io"
@@ -9,6 +10,8 @@ import (
"log"
"net/http"
"os"
+ "strconv"
+ "net/url"
)
func UpToDate(r *http.Request) bool {
@@ -33,6 +36,18 @@ func Lang(r *http.Request) string {
return lang
}
+func GetQS(q url.Values, param string, deflt int) (num int, str string) {
+ str = q.Get(param)
+ num, err := strconv.Atoi(str)
+ if err != nil {
+ num = deflt
+ str = ""
+ } else {
+ str = fmt.Sprintf("&%s=%s", param, str)
+ }
+ return
+}
+
func FuncMap(domain *gettext.Domain) template.FuncMap {
return template.FuncMap{
"UnEscaped": func(x string) interface{} {
More information about the tor-commits
mailing list