2 from twisted.internet.defer import Deferred
3 from xmlrpcclient import XMLRPCClientFactory as factory
4 from const import reactor, NULL_ID
7 def makeResponse(self, df):
8 """ Make our callback cover that checks to make sure the id of the response is the same as what we are expecting """
9 def _callback(args, d=df):
15 if self.id != NULL_ID and sender['id'] != self._senderDict['id']:
20 def ping(self, sender):
22 f = factory('ping', (sender,), self.makeResponse(df), df.errback)
23 reactor.connectTCP(self.host, self.port, f)
25 def findNode(self, target, sender):
27 f = factory('find_node', (target.encode('base64'), sender), self.makeResponse(df), df.errback)
28 reactor.connectTCP(self.host, self.port, f)
30 def storeValue(self, key, value, sender):
32 f = factory('store_value', (key.encode('base64'), value.encode('base64'), sender), self.makeResponse(df), df.errback)
33 reactor.connectTCP(self.host, self.port, f)
35 def findValue(self, key, sender):
37 f = factory('find_value', (key.encode('base64'), sender), self.makeResponse(df), df.errback)
38 reactor.connectTCP(self.host, self.port, f)