[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [flashproxy/master] Add defhost and defport to read_client_registrations.
commit 13325d09e1201398a745ac4a03e12e2b597a97c0
Author: David Fifield <david@xxxxxxxxxxxxxxx>
Date: Thu Oct 17 04:27:02 2013 -0700
Add defhost and defport to read_client_registrations.
Inspired by
"http registration: set default remote address properly - put_reg FROM is never actually read by facilitator"
https://github.com/infinity0/flashproxy/commit/4b8d3d65fbc78eca400e6c33e9987f923a7b18a1
---
facilitator/fac.py | 4 ++--
facilitator/facilitator-test | 6 ++++++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/facilitator/fac.py b/facilitator/fac.py
index 8daa73c..a1ac614 100644
--- a/facilitator/fac.py
+++ b/facilitator/fac.py
@@ -161,11 +161,11 @@ def get_single(qs, key, default=None):
raise ValueError("more than one %r key" % key)
return vals[0]
-def read_client_registrations(body):
+def read_client_registrations(body, defhost=None, defport=None):
"""Parse the lines of body and yield an Endpoint for each."""
for line in body.splitlines():
qs = urlparse.parse_qs(line, keep_blank_values=True, strict_parsing=True)
- addr = parse_addr_spec(get_single(qs, "client"))
+ addr = parse_addr_spec(get_single(qs, "client"), defhost, defport)
transport = get_single(qs, "client-transport", DEFAULT_CLIENT_TRANSPORT)
yield Endpoint(addr, transport)
diff --git a/facilitator/facilitator-test b/facilitator/facilitator-test
index 35c2e2e..024972a 100755
--- a/facilitator/facilitator-test
+++ b/facilitator/facilitator-test
@@ -402,6 +402,12 @@ class ReadClientRegistrationsTest(unittest.TestCase):
self.assertEqual(len(l), 1)
self.assertEqual(l[0].addr, ("1::2", 3333))
+ def testDefaultAddress(self):
+ l = list(fac.read_client_registrations("client=:1111&transport=websocket", defhost="1.2.3.4"))
+ self.assertEqual(l[0].addr, ("1.2.3.4", 1111))
+ l = list(fac.read_client_registrations("client=1.2.3.4:&transport=websocket", defport=1111))
+ self.assertEqual(l[0].addr, ("1.2.3.4", 1111))
+
def testDefaultTransport(self):
l = list(fac.read_client_registrations("client=1.2.3.4:1111"))
self.assertEqual(l[0].transport, "websocket")
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits