[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [flashproxy/master] Make parse_addr_spec pass new tests.
commit fd2df35dc9cdc27c24423f7905f60cc222e27a6d
Author: David Fifield <david@xxxxxxxxxxxxxxx>
Date: Tue Sep 11 08:56:38 2012 -0700
Make parse_addr_spec pass new tests.
---
facilitator/fac.py | 23 ++++++++++-------------
flashproxy-client | 23 ++++++++++-------------
flashproxy-reg-http | 23 ++++++++++-------------
3 files changed, 30 insertions(+), 39 deletions(-)
diff --git a/facilitator/fac.py b/facilitator/fac.py
index 2382d2b..494b378 100644
--- a/facilitator/fac.py
+++ b/facilitator/fac.py
@@ -29,32 +29,29 @@ def parse_addr_spec(spec, defhost = None, defport = None, resolve = False):
IPv6 addresses must be enclosed in square brackets."""
host = None
port = None
+ af = 0
m = None
# IPv6 syntax.
if not m:
- m = re.match(ur'^\[(.+)\]:(\d+)$', spec)
+ m = re.match(ur'^\[(.+)\]:(\d*)$', spec)
if m:
host, port = m.groups()
af = socket.AF_INET6
if not m:
- m = re.match(ur'^\[(.+)\]:?$', spec)
+ m = re.match(ur'^\[(.+)\]$', spec)
if m:
host, = m.groups()
af = socket.AF_INET6
- # IPv4 syntax.
+ # IPv4/hostname/port-only syntax.
if not m:
- m = re.match(ur'^(.+):(\d+)$', spec)
- if m:
- host, port = m.groups()
+ try:
+ host, port = spec.split(":", 1)
+ except ValueError:
+ host = spec
+ if re.match(ur'^[\d.]+$', host):
af = socket.AF_INET
- if not m:
- m = re.match(ur'^:?(\d+)$', spec)
- if m:
- port, = m.groups()
+ else:
af = 0
- if not m:
- host = spec
- af = 0
host = host or defhost
port = port or defport
if host is None or port is None:
diff --git a/flashproxy-client b/flashproxy-client
index f5c9a8b..6f7477e 100755
--- a/flashproxy-client
+++ b/flashproxy-client
@@ -95,32 +95,29 @@ def log(msg):
def parse_addr_spec(spec, defhost = None, defport = None):
host = None
port = None
+ af = 0
m = None
# IPv6 syntax.
if not m:
- m = re.match(ur'^\[(.+)\]:(\d+)$', spec)
+ m = re.match(ur'^\[(.+)\]:(\d*)$', spec)
if m:
host, port = m.groups()
af = socket.AF_INET6
if not m:
- m = re.match(ur'^\[(.+)\]:?$', spec)
+ m = re.match(ur'^\[(.+)\]$', spec)
if m:
host, = m.groups()
af = socket.AF_INET6
- # IPv4 syntax.
+ # IPv4/hostname/port-only syntax.
if not m:
- m = re.match(ur'^(.+):(\d+)$', spec)
- if m:
- host, port = m.groups()
+ try:
+ host, port = spec.split(":", 1)
+ except ValueError:
+ host = spec
+ if re.match(ur'^[\d.]+$', host):
af = socket.AF_INET
- if not m:
- m = re.match(ur'^:?(\d+)$', spec)
- if m:
- port, = m.groups()
+ else:
af = 0
- if not m:
- host = spec
- af = 0
host = host or defhost
port = port or defport
if port is not None:
diff --git a/flashproxy-reg-http b/flashproxy-reg-http
index e17abdf..4372c1f 100755
--- a/flashproxy-reg-http
+++ b/flashproxy-reg-http
@@ -34,32 +34,29 @@ remote address registered is "%(remote_addr)s".
def parse_addr_spec(spec, defhost = None, defport = None):
host = None
port = None
+ af = 0
m = None
# IPv6 syntax.
if not m:
- m = re.match(ur'^\[(.+)\]:(\d+)$', spec)
+ m = re.match(ur'^\[(.+)\]:(\d*)$', spec)
if m:
host, port = m.groups()
af = socket.AF_INET6
if not m:
- m = re.match(ur'^\[(.+)\]:?$', spec)
+ m = re.match(ur'^\[(.+)\]$', spec)
if m:
host, = m.groups()
af = socket.AF_INET6
- # IPv4 syntax.
+ # IPv4/hostname/port-only syntax.
if not m:
- m = re.match(ur'^(.+):(\d+)$', spec)
- if m:
- host, port = m.groups()
+ try:
+ host, port = spec.split(":", 1)
+ except ValueError:
+ host = spec
+ if re.match(ur'^[\d.]+$', host):
af = socket.AF_INET
- if not m:
- m = re.match(ur'^:?(\d+)$', spec)
- if m:
- port, = m.groups()
+ else:
af = 0
- if not m:
- host = spec
- af = 0
host = host or defhost
port = port or defport
if port is not None:
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits