diff options
-rw-r--r-- | Lib/urllib.py | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/Lib/urllib.py b/Lib/urllib.py index 45f3e99..a8228eb 100644 --- a/Lib/urllib.py +++ b/Lib/urllib.py @@ -598,18 +598,17 @@ def splitport(host): # 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]*\).*\)$') +# Return numerical port if a valid number are found after ':'. +# Return None if ':' but not a valid number. +_nportprog = regex.compile('^\(.*\):\(.*\)$') 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 + host, port = _nportprog.group(1, 2) + try: + if not port: raise string.atoi_error, "no digits" + nport = string.atoi(port) + except string.atoi_error: + nport = None return host, nport return host, defport |