]> git.mxchange.org Git - quix0rs-apt-p2p.git/blobdiff - xmlrpcclient.py
fix bug in pong handler
[quix0rs-apt-p2p.git] / xmlrpcclient.py
index 866039f991e61639ce69939cb06ad62806c70450..5c8f3cf2565329cc235cf9f598e296c86eb3abd4 100644 (file)
@@ -4,11 +4,12 @@ from twisted.internet.defer import Deferred
 
 from xmlrpclib import loads, dumps
 
+USER_AGENT = 'Python/Twisted XMLRPC 0.1'
 class XMLRPCClient(HTTPClient):
     def connectionMade(self):
        payload = dumps(self.args, self.method)
        self.sendCommand('POST', '/RPC2')
-       self.sendHeader('User-Agent', 'Python/Twisted XMLRPC 0.1')
+       self.sendHeader('User-Agent', USER_AGENT)
        self.sendHeader('Content-Type', 'text/xml')
        self.sendHeader('Content-Length', len(payload))
        self.endHeaders()
@@ -16,9 +17,13 @@ class XMLRPCClient(HTTPClient):
         self.transport.write('\r\n')
        
     def handleResponse(self, buf):
-       args, name = loads(buf)
-       apply(self.d.callback, args)
-
+       try:
+           args, name = loads(buf)
+       except Exception, e:
+           print "response decode error: " + `e`
+           self.d.errback()
+       else:
+           apply(self.d.callback, args)
 
 class XMLRPCClientFactory(ClientFactory):
     def __init__(self, method, args, callback=None, errback=None):