From: Georg Brandl <georg@python.org>
Date: Sat, 21 Jan 2006 07:20:56 +0000 (+0000)
Subject: Bug #902075: urllib2 now handles "host:port" proxy specifications
X-Git-Tag: v2.5a0~773
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=531cebad4c815f8fcf7abaf680ceb88c014d7d3f;p=python

Bug #902075: urllib2 now handles "host:port" proxy specifications


Can/should this be backported?
---

diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index 015fdb51e8..ba0d5b57ad 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -579,14 +579,19 @@ class ProxyHandler(BaseHandler):
     def proxy_open(self, req, proxy, type):
         orig_type = req.get_type()
         type, r_type = splittype(proxy)
-        host, XXX = splithost(r_type)
-        if '@' in host:
-            user_pass, host = host.split('@', 1)
-            if ':' in user_pass:
-                user, password = user_pass.split(':', 1)
-                user_pass = base64.encodestring('%s:%s' % (unquote(user),
-                                                unquote(password))).strip()
-                req.add_header('Proxy-authorization', 'Basic ' + user_pass)
+        if not type or r_type.isdigit():
+            # proxy is specified without protocol
+            type = orig_type
+            host = proxy
+        else:
+            host, r_host = splithost(r_type)
+        user_pass, host = splituser(host)
+        user, password = splitpasswd(user_pass)
+        if user and password:
+            user, password = user_pass.split(':', 1)
+            user_pass = base64.encodestring('%s:%s' % (unquote(user),
+                                            unquote(password))).strip()
+            req.add_header('Proxy-authorization', 'Basic ' + user_pass)
         host = unquote(host)
         req.set_proxy(host, type)
         if orig_type == type:
diff --git a/Misc/NEWS b/Misc/NEWS
index ca5c5d9d0b..af41f33cea 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -337,7 +337,9 @@ Extension Modules
 Library
 -------
 
-- Bug #1407902: Added support for sftp:// URIs to urlparse.
+- Bug #902075: urllib2 now supports 'host:port' style proxy specifications.
+
+- Bug #1407902: Add support for sftp:// URIs to urlparse.
 
 - Bug #1371247: Update Windows locale identifiers in locale.py.