expose more info when certificate check fails
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Wed, 28 May 2008 07:15:56 +0000 (07:15 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Wed, 28 May 2008 07:15:56 +0000 (07:15 +0000)
safexmlrpc.py

index 71799ff..7961a75 100644 (file)
@@ -11,14 +11,17 @@ class CertificateCheckingSafeTransport(xmlrpclib.Transport):
 
     def request(self, host, handler, request_body, verbose=0):
         self.verbose = verbose
+        url='https://%s%s' % (host, handler)
         try:
-            contents = curlwrapper.retrieve('https://%s%s' % (host, handler),
+            contents = curlwrapper.retrieve(url,
                                             cacert = self.cacert,
                                             postdata = request_body,
                                             timeout = self.timeout)
             return xmlrpclib.loads(contents)[0]
         except curlwrapper.CurlException, e:
-            raise xmlrpclib.ProtocolError(host + handler, -1, str(e), '')
+            # when this triggers, the error sometimes doesn't get printed
+            print 'CertificateCheckingSafeTransport.request: Catching curlwrapper.CurlException with error <%s>'%str(e)
+            raise xmlrpclib.ProtocolError(url, -1, str(e), request_body)
 
 class ServerProxy(xmlrpclib.ServerProxy):
     def __init__(self, uri, cacert, timeout = 300, **kwds):