Index: trunk/Lib/xmlrpclib.py =================================================================== --- trunk/Lib/xmlrpclib.py (revision 64558) +++ trunk/Lib/xmlrpclib.py (working copy) @@ -1228,24 +1228,18 @@ self.send_user_agent(h) self.send_content(h, request_body) - errcode, errmsg, headers = h.getreply() + response = h.getresponse() - if errcode != 200: + if response.status != 200: raise ProtocolError( host + handler, - errcode, errmsg, - headers + response.status, response.reason, response.msg ) self.verbose = verbose - try: - sock = h._conn.sock - except AttributeError: - sock = None + return self._parse_response(response.fp, h.sock) - return self._parse_response(h.getfile(), sock) - ## # Create parser. # @@ -1296,7 +1290,7 @@ # create a HTTP connection object from a host descriptor import httplib host, extra_headers, x509 = self.get_host_info(host) - return httplib.HTTP(host) + return httplib.HTTPConnection(host) ## # Send request header. @@ -1398,14 +1392,14 @@ # host may be a string, or a (host, x509-dict) tuple import httplib host, extra_headers, x509 = self.get_host_info(host) - try: - HTTPS = httplib.HTTPS - except AttributeError: + + import socket + if not socket._have_ssl: raise NotImplementedError( "your version of httplib doesn't support HTTPS" ) else: - return HTTPS(host, None, **(x509 or {})) + return httplib.HTTPSConnection(host, None, **(x509 or {})) ## # Standard server proxy. This class establishes a virtual connection