mercurial/httprepo.py
changeset 4232 0d51eb296fb9
parent 4134 9dc64c8414ca
parent 4226 fffacca46f09
child 4366 bf8319ee3428
--- a/mercurial/httprepo.py
+++ b/mercurial/httprepo.py
@@ -75,6 +75,14 @@ def netlocunsplit(host, port, user=None,
         return userpass + '@' + hostport
     return hostport
 
+# work around a bug in Python < 2.4.2
+# (it leaves a "\n" at the end of Proxy-authorization headers)
+class request(urllib2.Request):
+    def add_header(self, key, val):
+        if key.lower() == 'proxy-authorization':
+            val = val.strip()
+        return urllib2.Request.add_header(self, key, val)
+
 class httpsendfile(file):
     def __len__(self):
         return os.fstat(self.fileno()).st_size
@@ -238,7 +246,7 @@ class httprepository(remoterepository):
             if data:
                 self.ui.debug(_("sending %s bytes\n") %
                               headers.get('content-length', 'X'))
-            resp = urllib2.urlopen(urllib2.Request(cu, data, headers))
+            resp = urllib2.urlopen(request(cu, data, headers))
         except urllib2.HTTPError, inst:
             if inst.code == 401:
                 raise util.Abort(_('authorization failed'))