base64.encodestring() for encoding authentication data.
encodestring() can include newlines for very long input, which
produced broken HTTP headers.
2.4 backport candidate, probably.
if proxy_passwd:
import base64
- proxy_auth = base64.encodestring(proxy_passwd).strip()
+ proxy_auth = base64.b64encode(proxy_passwd).strip()
else:
proxy_auth = None
if user_passwd:
import base64
- auth = base64.encodestring(user_passwd).strip()
+ auth = base64.b64encode(user_passwd).strip()
else:
auth = None
h = httplib.HTTP(host)
if not host: raise IOError, ('https error', 'no host given')
if proxy_passwd:
import base64
- proxy_auth = base64.encodestring(proxy_passwd).strip()
+ proxy_auth = base64.b64encode(proxy_passwd).strip()
else:
proxy_auth = None
if user_passwd:
import base64
- auth = base64.encodestring(user_passwd).strip()
+ auth = base64.b64encode(user_passwd).strip()
else:
auth = None
h = httplib.HTTPS(host, 0,
proxy_type = orig_type
if user and password:
user_pass = '%s:%s' % (unquote(user), unquote(password))
- creds = base64.encodestring(user_pass).strip()
+ creds = base64.b64encode(user_pass).strip()
req.add_header('Proxy-authorization', 'Basic ' + creds)
hostport = unquote(hostport)
req.set_proxy(hostport, proxy_type)
user, pw = self.passwd.find_user_password(realm, host)
if pw is not None:
raw = "%s:%s" % (user, pw)
- auth = 'Basic %s' % base64.encodestring(raw).strip()
+ auth = 'Basic %s' % base64.b64encode(raw).strip()
if req.headers.get(self.auth_header, None) == auth:
return None
req.add_header(self.auth_header, auth)
- Bug #1576241: fix functools.wraps() to work on built-in functions.
+- Patch #1574068: fix urllib/urllib2 to not insert line breaks when
+ HTTP authentication data was very long.
+
- Fix a bug in traceback.format_exception_only() that led to an error
being raised when print_exc() was called without an exception set.
In version 2.4, this printed "None", restored that behavior.