summaryrefslogtreecommitdiff
path: root/src/ipcpd/normal/dht.c
Commit message (Collapse)AuthorAgeFilesLines
* ipcpd: Fix finding values in DHTDimitri Staessens2017-08-051-5/+18
| | | | | | | | | The DHT lookup would stop if a node returned no new useful information (i.e. the value for the key or unknown nodes closer to the key) without waiting for other pending requests that could still return useful information. Now it correctly tracks the number of outstanding requests or returns if it doesn't get a response for KAD_T_RESP seconds. This fixes multi-hop flow allocation over the normal.
* ipcpd: Fix registration bug in DHTdimitri staessens2017-07-291-2/+2
|
* ipcpd: Some fixes in DHTdimitri staessens2017-07-291-13/+10
| | | | | | | Fixes a memory leak when the DHT is destroyed during a send_msg. Fixes a deadlock when destroying the DHT with a pending lookup. Removes some debug logs that clutter output due to expected redundant FIND_VALUE responses.
* ipcpd: Retry sending DHT response messagesdimitri staessens2017-07-241-4/+16
| | | | | | | This will make the remote retry sending responses when the DT component can't send the message. This is most useful at enrollment, when the remote's routing table may need to wait a bit on the routing component for a path to the new member,
* ipcpd: Fix DHT lookup processingdimitri staessens2017-07-201-20/+25
| | | | | Not all returned contacts were processed when a FIND_NODE or FIND_VALUE message was returned.
* ipcpd: Add DHT as directory in normal IPCPdimitri staessens2017-07-181-0/+2369
This implements a Distributed Hash Table (DHT) based on the Kademlia protocol, with default parameters set as used in the BitTorrent Mainline DHT. This initial implementation is almost feature complete, except for some things to be done after a testing period: caching and stale peer bumping, and setting the expiration timeout via the IRM tool.