Promote the server version from a local variable to a class variable,
so that a subclass can override it.
This partly addresses Bug #112634 -- but the documentation is still
wrong, since it suggests that you can set self.version *after* calling
the base class __init__. In fact it must be done *before*.
I'll fix that too.
diff --git a/Lib/urllib.py b/Lib/urllib.py
index cdea631..7275a5a 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -28,7 +28,7 @@
import sys
-__version__ = '1.12' # XXX This version is not always updated :-(
+__version__ = '1.13' # XXX This version is not always updated :-(
MAXFTPCACHE = 10 # Trim the ftp cache beyond this size
@@ -82,6 +82,8 @@
__tempfiles = None
+ version = "Python-urllib/%s" % __version__
+
# Constructor
def __init__(self, proxies=None, **x509):
if proxies is None:
@@ -90,8 +92,7 @@
self.proxies = proxies
self.key_file = x509.get('key_file')
self.cert_file = x509.get('cert_file')
- server_version = "Python-urllib/%s" % __version__
- self.addheaders = [('User-agent', server_version)]
+ self.addheaders = [('User-agent', self.version)]
self.__tempfiles = []
self.__unlink = os.unlink # See cleanup()
self.tempcache = None