[tor-commits] [flashproxy/master] Tolerate other URL parameters in client regisration lines.

dcf at torproject.org dcf at torproject.org
Thu Oct 10 19:02:21 UTC 2013


commit 3e80ad4f244841beb53f23d70f13bd925c9bc48d
Author: David Fifield <david at bamsoftware.com>
Date:   Wed Oct 9 23:06:00 2013 -0700

    Tolerate other URL parameters in client regisration lines.
---
 facilitator/facilitator-reg-daemon |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/facilitator/facilitator-reg-daemon b/facilitator/facilitator-reg-daemon
index 2cb2904..ed9eb7e 100755
--- a/facilitator/facilitator-reg-daemon
+++ b/facilitator/facilitator-reg-daemon
@@ -7,6 +7,7 @@ import socket
 import sys
 import threading
 import time
+import urlparse
 
 import fac
 
@@ -81,9 +82,14 @@ def find_client_addr(body):
         client=...
     Returns None if no client line was found."""
     for line in body.splitlines():
-        if line.startswith("client="):
-            _, client_spec = line.split("=", 1)
-            return fac.parse_addr_spec(client_spec)
+        try:
+            qs = urlparse.parse_qs(line, keep_blank_values=True, strict_parsing=True)
+        except ValueError:
+            continue
+        client_specs = qs["client"]
+        if len(client_specs) != 1:
+            continue
+        return fac.parse_addr_spec(client_specs[0])
     return None
 
 class Handler(SocketServer.StreamRequestHandler):





More information about the tor-commits mailing list