summaryrefslogtreecommitdiff
path: root/src/ipcpd/normal/dht.c
Commit message (Collapse)AuthorAgeFilesLines
...
| * ipcpd: Fix tracking of outstanding DHT requestsdimitri staessens2017-08-131-7/+28
| | | | | | | | | | | | The DHT failed when receiving multiple responses in a short timeframe. The lookup struct now keeps track of the number of outstanding requests.
* | build: Fix compilation on OS X Sierradimitri staessens2017-08-111-0/+4
|/
* lib, ipcpd, tools: Fix enum assignmentsSander Vrijders2017-08-101-1/+1
| | | | This fixes several assignments to the wrong enum type.
* 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.