# 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 $
+# $Id$
+# $URL$
#
import os
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
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
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()