From: Georg Brandl Date: Wed, 3 May 2006 18:03:22 +0000 (+0000) Subject: RFE #1472176: In httplib, don't encode the netloc and hostname with "idna" if not... X-Git-Tag: v2.5b1~712 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a2ac2ef44f67006edc694ef8281cb42b5cfddc7b;p=python RFE #1472176: In httplib, don't encode the netloc and hostname with "idna" if not necessary. --- diff --git a/Lib/httplib.py b/Lib/httplib.py index b4bd536c6c..36381de469 100644 --- a/Lib/httplib.py +++ b/Lib/httplib.py @@ -796,11 +796,20 @@ class HTTPConnection: 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