add context parameter to xmlrpclib.ServerProxy (#22960)

Patch from Alex Gaynor.
diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
index 1a8b3fb..f5682c9 100644
--- a/Lib/xmlrpclib.py
+++ b/Lib/xmlrpclib.py
@@ -1478,6 +1478,10 @@
 class SafeTransport(Transport):
     """Handles an HTTPS transaction to an XML-RPC server."""
 
+    def __init__(self, use_datetime=0, context=None):
+        Transport.__init__(self, use_datetime=use_datetime)
+        self.context = context
+
     # FIXME: mostly untested
 
     def make_connection(self, host):
@@ -1493,7 +1497,7 @@
                 )
         else:
             chost, self._extra_headers, x509 = self.get_host_info(host)
-            self._connection = host, HTTPS(chost, None, **(x509 or {}))
+            self._connection = host, HTTPS(chost, None, context=context, **(x509 or {}))
             return self._connection[1]
 
 ##
@@ -1536,7 +1540,7 @@
     """
 
     def __init__(self, uri, transport=None, encoding=None, verbose=0,
-                 allow_none=0, use_datetime=0):
+                 allow_none=0, use_datetime=0, context=None):
         # establish a "logical" server connection
 
         if isinstance(uri, unicode):
@@ -1553,7 +1557,7 @@
 
         if transport is None:
             if type == "https":
-                transport = SafeTransport(use_datetime=use_datetime)
+                transport = SafeTransport(use_datetime=use_datetime, context=context)
             else:
                 transport = Transport(use_datetime=use_datetime)
         self.__transport = transport