Merged revisions 75482 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75482 | ronald.oussoren | 2009-10-18 09:07:00 +0200 (Sun, 18 Oct 2009) | 3 lines

  Fix for issue 7149: a regression in 2.6.3 that causes an exception when
  trying to detect proxy settings on OSX.
........
diff --git a/Lib/urllib.py b/Lib/urllib.py
index a5c8fa2..1ae08a0 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -1344,6 +1344,8 @@
         import socket
         from fnmatch import fnmatch
 
+        hostonly, port = splitport(host)
+
         def ip2num(ipAddr):
             parts = ipAddr.split('.')
             parts = map(int, parts)
@@ -1358,6 +1360,8 @@
             if proxy_settings['exclude_simple']:
                 return True
 
+        hostIP = None
+
         for value in proxy_settings.get('exceptions', ()):
             # Items in the list are strings like these: *.local, 169.254/16
             if not value: continue
@@ -1365,8 +1369,11 @@
             m = re.match(r"(\d+(?:\.\d+)*)(/\d+)?", value)
             if m is not None:
                 if hostIP is None:
-                    hostIP = socket.gethostbyname(host)
-                    hostIP = ip2num(hostIP)
+                    try:
+                        hostIP = socket.gethostbyname(hostonly)
+                        hostIP = ip2num(hostIP)
+                    except socket.error:
+                        continue
 
                 base = ip2num(m.group(1))
                 mask = int(m.group(2)[1:])