]> granicus.if.org Git - python/commitdiff
SF Patch #103232 by dougfort: Preserve Nonstandard Port Number in Host
authorGuido van Rossum <guido@python.org>
Sun, 14 Jan 2001 21:03:01 +0000 (21:03 +0000)
committerGuido van Rossum <guido@python.org>
Sun, 14 Jan 2001 21:03:01 +0000 (21:03 +0000)
Header

Dougfort's comments: httplib does not include ':port ' in the HTTP 1.1
'Host:' header.  This causes problems if the server is not listening
on Port 80.  The test case I use is the login to /manage under Zope,
with Zope listening on port 8080. Zope returns a <frameset> with the
<frame> source URLs lacking the :8080.

Lib/httplib.py

index ae65a11f33f0a55d4bd3cbd72d28fdd3c07002d2..79789bbbc4fcc60264f76ba56f903cc899e11a30 100644 (file)
@@ -441,7 +441,12 @@ class HTTPConnection:
             # be using HTTP/1.0 and those clients may be issuing this header
             # themselves. we should NOT issue it twice; some web servers (such
             # as Apache) barf when they see two Host: headers
-            self.putheader('Host', self.host)
+
+            # if we need a non-standard port,include it in the header
+            if self.port == HTTP_PORT:
+                self.putheader('Host', self.host)
+            else:
+                self.putheader('Host', "%s:%s" % (self.host, self.port))
 
             # note: we are assuming that clients will not attempt to set these
             #       headers since *this* library must deal with the