]> git.mxchange.org Git - quix0rs-apt-p2p.git/blob - knode.py
Fix some errors found by PyLint.
[quix0rs-apt-p2p.git] / knode.py
1 ## Copyright 2002-2004 Andrew Loewenstern, All Rights Reserved
2 # see LICENSE.txt for license information
3
4 from node import Node
5 from twisted.internet.defer import Deferred
6 from const import reactor, NULL_ID
7
8
9 class KNodeBase(Node):
10     def checkSender(self, dict):
11         try:
12             senderid = dict['rsp']['id']
13         except KeyError:
14             print ">>>> No peer id in response"
15             raise Exception, "No peer id in response."
16         else:
17             if self.id != NULL_ID and senderid != self.id:
18                 print "Got response from different node than expected."
19                 self.table.invalidateNode(self)
20                 
21         return dict
22
23     def errBack(self, err):
24         print ">>> ", err
25         return err
26         
27     def ping(self, id):
28         df = self.conn.sendRequest('ping', {"id":id})
29         df.addErrback(self.errBack)
30         df.addCallback(self.checkSender)
31         return df
32     def findNode(self, target, id):
33         df = self.conn.sendRequest('find_node', {"target" : target, "id": id})
34         df.addErrback(self.errBack)
35         df.addCallback(self.checkSender)
36         return df
37
38 class KNodeRead(KNodeBase):
39     def findValue(self, key, id):
40         df =  self.conn.sendRequest('find_value', {"key" : key, "id" : id})
41         df.addErrback(self.errBack)
42         df.addCallback(self.checkSender)
43         return df
44
45 class KNodeWrite(KNodeRead):
46     def storeValue(self, key, value, id):
47         df = self.conn.sendRequest('store_value', {"key" : key, "value" : value, "id": id})
48         df.addErrback(self.errBack)
49         df.addCallback(self.checkSender)
50         return df
51     def storeValues(self, key, value, id):
52         df = self.conn.sendRequest('store_values', {"key" : key, "values" : value, "id": id})
53         df.addErrback(self.errBack)
54         df.addCallback(self.checkSender)
55         return df