summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri.staessens@ugent.be>2018-02-06 17:42:40 +0100
committerSander Vrijders <sander.vrijders@ugent.be>2018-02-06 18:05:16 +0100
commitd2028e4cea956791152a41b12b2907178f40caa9 (patch)
treeb438b15385abae958b71f1b2ca902ae9969a7f98
parentcb178d835ff608886518f1098d89e56cfb1d34b2 (diff)
downloadouroboros-d2028e4cea956791152a41b12b2907178f40caa9.tar.gz
ouroboros-d2028e4cea956791152a41b12b2907178f40caa9.zip
ipcpd: Handle LU_DONE state in DHT
The DHT would enter an infinite loop in lookup_wait() because the LU_DONE state was not handled correctly. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
-rw-r--r--src/ipcpd/normal/dht.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/ipcpd/normal/dht.c b/src/ipcpd/normal/dht.c
index 103ffd1c..9296130a 100644
--- a/src/ipcpd/normal/dht.c
+++ b/src/ipcpd/normal/dht.c
@@ -1675,6 +1675,7 @@ static struct lookup * kad_lookup(struct dht * dht,
out = kad_find(dht, id, addrs, code);
lookup_add_out(lu, out);
break;
+ case LU_DONE:
case LU_DESTROY:
lookup_detach(dht, lu);
lookup_set_state(lu, LU_NULL);