[Python-checkins] r45890 - python/trunk/Lib/httplib.py

georg.brandl python-checkins at python.org
Wed May 3 20:03:23 CEST 2006


Author: georg.brandl
Date: Wed May  3 20:03:22 2006
New Revision: 45890

Modified:
   python/trunk/Lib/httplib.py
Log:
RFE #1472176: In httplib, don't encode the netloc and hostname with "idna" if not necessary.



Modified: python/trunk/Lib/httplib.py
==============================================================================
--- python/trunk/Lib/httplib.py	(original)
+++ python/trunk/Lib/httplib.py	Wed May  3 20:03:22 2006
@@ -796,11 +796,20 @@
                     nil, netloc, nil, nil, nil = urlsplit(url)
 
                 if netloc:
-                    self.putheader('Host', netloc.encode("idna"))
-                elif self.port == HTTP_PORT:
-                    self.putheader('Host', self.host.encode("idna"))
+                    try:
+                        netloc_enc = netloc.encode("ascii")
+                    except UnicodeEncodeError:
+                        netloc_enc = netloc.encode("idna")
+                    self.putheader('Host', netloc_enc)
                 else:
-                    self.putheader('Host', "%s:%s" % (self.host.encode("idna"), self.port))
+                    try:
+                        host_enc = self.host.encode("ascii")
+                    except UnicodeEncodeError:
+                        host_enc = self.host.encode("idna")
+                    if self.port == HTTP_PORT:
+                        self.putheader('Host', host_enc)
+                    else:
+                        self.putheader('Host', "%s:%s" % (host_enc, self.port))
 
             # note: we are assuming that clients will not attempt to set these
             #       headers since *this* library must deal with the


More information about the Python-checkins mailing list