[tor-commits] [flashproxy/master] App Engine app handling /ip and /reg.

dcf at torproject.org dcf at torproject.org
Sun May 19 16:11:39 UTC 2013


commit 427e9834d71ad30274f924dd20d0cd692396bf40
Author: Arlo Breault <arlolra at gmail.com>
Date:   Fri May 10 15:02:20 2013 -0700

    App Engine app handling /ip and /reg.
    
    Works with the prototype described in #8860
---
 appspot/app.yaml       |    9 +++++++++
 appspot/fp.go          |   32 ++++++++++++++++++++++++++++++++
 flashproxy-reg-appspot |    6 +++---
 3 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/appspot/app.yaml b/appspot/app.yaml
new file mode 100644
index 0000000..27cccb3
--- /dev/null
+++ b/appspot/app.yaml
@@ -0,0 +1,9 @@
+application: flashproxy-reg
+version: 1
+runtime: go
+api_version: go1
+
+handlers:
+- url: /(ip|(reg/.+))
+  script: _go_app
+  secure: always
diff --git a/appspot/fp.go b/appspot/fp.go
new file mode 100644
index 0000000..ee569a2
--- /dev/null
+++ b/appspot/fp.go
@@ -0,0 +1,32 @@
+package fp
+
+import (
+  "fmt"
+  "net/http"
+
+  "appengine"
+  "appengine/urlfetch"
+)
+
+const BASE = "https://fp-facilitator.org/reg/"
+
+func ipHandler(w http.ResponseWriter, r *http.Request) {
+  fmt.Fprintf(w, "%s", r.RemoteAddr)
+}
+
+func regHandler(w http.ResponseWriter, r *http.Request) {
+  c := appengine.NewContext(r)
+  blob := r.URL.String()[5:]
+  client := urlfetch.Client(c)
+  _, err := client.Get(BASE + blob)
+  if err != nil {
+    http.Error(w, err.Error(), http.StatusInternalServerError)
+    return
+  }
+  fmt.Fprintf(w, "Thanks.")
+}
+
+func init() {
+  http.HandleFunc("/ip", ipHandler)
+  http.HandleFunc("/reg/", regHandler)
+}
diff --git a/flashproxy-reg-appspot b/flashproxy-reg-appspot
index 9b9b4c3..cb595ce 100755
--- a/flashproxy-reg-appspot
+++ b/flashproxy-reg-appspot
@@ -32,7 +32,7 @@ def get_facilitator_pubkey():
 
 def get_external_ip():
     try:
-        f = urllib2.urlopen("https://agentgatech.appspot.com/")
+        f = urllib2.urlopen("https://flashproxy-reg.appspot.com/ip")
     except:
         return None
     ip = f.read()
@@ -140,5 +140,5 @@ rsa = get_facilitator_pubkey()
 reg_crypt = rsa.public_encrypt(reg_plain, RSA.pkcs1_oaep_padding)
 reg = base64.urlsafe_b64encode(reg_crypt)
 
-url = urlparse.urljoin(options.facilitator_url, "reg/" + reg)
-urllib2.urlopen("https://g-proxy.appspot.com/" + urllib2.quote(url))
+url = urlparse.urljoin("http://flashproxy-reg.appspot.com/reg/", reg)
+urllib2.urlopen(url)





More information about the tor-commits mailing list