Commit 53725a28 authored by Guido van Rossum's avatar Guido van Rossum

Added splitnport(), which is like splitport() but returns a numeric port,

is forgiving about semi-numeric port numbers, and allows you to specify
a default port (default is -1, None returned for nonnumeric port).
parent 2745753b
......@@ -596,6 +596,23 @@ def splitport(host):
if _portprog.match(host) >= 0: return _portprog.group(1, 2)
return host, None
# Split host and port, returning numeric port.
# Return given default port if no ':' found; defaults to -1.
# Return numerical port if digits are found after ':'.
# Return None if ':' but no digits.
_nportprog = regex.compile('^\(.*\):\([^0-9]*\([0-9]*\).*\)$')
def splitnport(host, defport=-1):
if _nportprog.match(host) >= 0:
host, port = _nportprog.group(1, 3)
nport = None
if port:
try:
nport = string.atoi(port)
except string.atoi_error:
pass
return host, nport
return host, defport
_queryprog = regex.compile('^\(.*\)\?\([^?]*\)$')
def splitquery(url):
if _queryprog.match(url) >= 0: return _queryprog.group(1, 2)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment