Blob Blame History Raw
Allow setting User-agent on HTTPS proxy connections.  Based on a patch by
James Antill <james.antill@redhat.com>.

diff -urN m2crypto/M2Crypto/httpslib.py m2crypto-0.18.2/M2Crypto/httpslib.py
--- m2crypto/M2Crypto/httpslib.py	2008-06-07 22:26:35.000000000 +0200
+++ m2crypto-0.18.2/M2Crypto/httpslib.py	2008-06-07 22:33:55.000000000 +0200
@@ -103,6 +103,7 @@
 
     _ports = {'http' : 80, 'https' : 443}
     _AUTH_HEADER = "Proxy-Authorization"
+    _UA_HEADER = "User-Agent"
 
     def __init__(self, host, port=None, strict=None, username=None,
         password=None, **ssl):
@@ -116,6 +117,7 @@
         self._username = username
         self._password = password
         self._proxy_auth = None
+        self._proxy_UA = None
 
     def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):
         #putrequest is called before connect, so can interpret url and get
@@ -139,6 +141,8 @@
 
     def putheader(self, header, value):
         # Store the auth header if passed in.
+        if header.lower() == self._UA_HEADER.lower():
+            self._proxy_UA = value
         if header.lower() == self._AUTH_HEADER.lower():
             self._proxy_auth = value
         else:
@@ -173,6 +177,8 @@
         """ Return an HTTP CONNECT request to send to the proxy. """
         msg = "CONNECT %s:%d HTTP/1.1\r\n" % (self._real_host, self._real_port)
         msg = msg + "Host: %s:%d\r\n" % (self._real_host, self._real_port)
+        if self._proxy_UA:
+            msg = msg + "%s: %s\r\n" % (self._UA_HEADER, self._proxy_UA)
         if self._proxy_auth:
             msg = msg + "%s: %s\r\n" % (self._AUTH_HEADER, self._proxy_auth) 
         msg = msg + "\r\n"