# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id$
-#
import os
-import xmlrpclib
+import xmlrpc.client
import pycurl
from tempfile import NamedTemporaryFile
-class PyCurlTransport(xmlrpclib.Transport):
+class PyCurlTransport(xmlrpc.client.Transport):
def __init__(self, uri, cert = None, timeout = 300):
- xmlrpclib.Transport.__init__(self)
+ if hasattr(xmlrpc.client.Transport,'__init__'):
+ xmlrpc.client.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
response = self.body
self.body = ""
errmsg="<no known errmsg>"
- except pycurl.error, err:
+ except pycurl.error as err:
(errcode, errmsg) = err
if errcode == 60:
- raise Exception, "PyCurl: SSL certificate validation failed"
+ raise Exception("PyCurl: SSL certificate validation failed")
elif errcode != 200:
- raise Exception, "PyCurl: HTTP error %d -- %r" % (errcode,errmsg)
+ raise Exception("PyCurl: HTTP error %d -- %r" % (errcode,errmsg))
# Parse response
p, u = self.getparser()