====
[plcapi.git] / PLC / PyCurl.py
index 14e14c4..4ae2fdc 100644 (file)
@@ -5,8 +5,6 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2006 The Trustees of Princeton University
 #
-# $Id: PyCurl.py,v 1.1 2006/12/15 18:21:39 mlhuang Exp $
-#
 
 import os
 import xmlrpclib
@@ -15,6 +13,8 @@ from tempfile import NamedTemporaryFile
 
 class PyCurlTransport(xmlrpclib.Transport):
     def __init__(self, uri, cert = None, timeout = 300):
+        if hasattr(xmlrpclib.Transport,'__init__'):
+            xmlrpclib.Transport.__init__(self)
         self.curl = pycurl.Curl()
 
         # Suppress signals
@@ -49,7 +49,7 @@ class PyCurlTransport(xmlrpclib.Transport):
         self.body = ""
         def body(buf):
             self.body += buf
-        self.curl.setopt(pycurl.WRITEFUNCTION, body)        
+        self.curl.setopt(pycurl.WRITEFUNCTION, body)
 
     def request(self, host, handler, request_body, verbose = 1):
         # Set verbosity
@@ -64,13 +64,14 @@ class PyCurlTransport(xmlrpclib.Transport):
             errcode = self.curl.getinfo(pycurl.HTTP_CODE)
             response = self.body
             self.body = ""
+            errmsg="<no known errmsg>"
         except pycurl.error, err:
             (errcode, errmsg) = err
 
         if errcode == 60:
             raise Exception, "PyCurl: SSL certificate validation failed"
         elif errcode != 200:
-            raise Exception, "PyCurl: HTTP error %d" % errcode
+            raise Exception, "PyCurl: HTTP error %d -- %r" % (errcode,errmsg)
 
         # Parse response
         p, u = self.getparser()