commit 3194f6b18ff9e295329679177ffb0dc61e56b319 Author: David Fifield david@bamsoftware.com Date: Sat May 18 23:24:39 2013 -0700
Abstract Host substitution. --- flashproxy-reg-appspot | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-)
diff --git a/flashproxy-reg-appspot b/flashproxy-reg-appspot index 7cd43dd..b9bc621 100755 --- a/flashproxy-reg-appspot +++ b/flashproxy-reg-appspot @@ -12,16 +12,17 @@ import urllib2 DEFAULT_REMOTE_ADDRESS = None DEFAULT_REMOTE_PORT = 9000
+# The domain to which requests appear to go. +FRONT_DOMAIN = "www.google.com" +# The value of the Host header within requests. +TARGET_DOMAIN = "flashproxy-reg.appspot.com" + def get_external_ip(): - req = urllib2.Request("https://www.google.com/ip") - req.add_header("Host", "flashproxy-reg.appspot.com") + f = urlopen(urlparse.urlunparse(("https", FRONT_DOMAIN, "/ip", "", "", ""))) try: - f = urllib2.urlopen(req) - except: - return "" - ip = f.read() - f.close() - return ip + return f.read() + finally: + f.close()
class options(object): address_family = socket.AF_UNSPEC @@ -103,7 +104,8 @@ def generate_url(addr): if not script_dir: # Maybe the script was read from stdin; in any case don't guess at the directory. raise ValueError("Can't find executable directory for registration helpers") - command = [os.path.join(script_dir, "flashproxy-reg-url"), "-f", "https://www.google.com/"] + command = [os.path.join(script_dir, "flashproxy-reg-url")] + command += ["-f", urlparse.urlunparse(("https", "www.google.com", "/", "", "", ""))] if options.facilitator_pubkey_filename is not None: command += ["--facilitator-pubkey", options.facilitator_pubkey_filename] command.append(format_addr(addr)) @@ -111,6 +113,11 @@ def generate_url(addr): stdout, stderr = p.communicate() return stdout.strip()
+def urlopen(url): + req = urllib2.Request(url) + req.add_header("Host", TARGET_DOMAIN) + return urllib2.urlopen(req) + opt, args = getopt.gnu_getopt(sys.argv[1:], "46h", ["facilitator-pubkey=", "help"]) for o, a in opt: if o == "-4": @@ -150,10 +157,8 @@ except Exception, e: print >> sys.stderr, "Error running flashproxy-reg-url: %s" % str(e) sys.exit(1)
-req = urllib2.Request(url) -req.add_header("Host", "flashproxy-reg.appspot.com") try: - http = urllib2.urlopen(req) + http = urlopen(url) except urllib2.HTTPError, e: print >> sys.stderr, "Status code was %d, not 200" % e.code sys.exit(1) @@ -165,4 +170,4 @@ except Exception, e: sys.exit(1) http.close()
-print "Registered "%s" with %s." % (format_addr(remote_addr), "flashproxy-reg.appspot.com") +print "Registered "%s" with %s." % (format_addr(remote_addr), TARGET_DOMAIN)
tor-commits@lists.torproject.org