commit 427e9834d71ad30274f924dd20d0cd692396bf40 Author: Arlo Breault arlolra@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)
tor-commits@lists.torproject.org