From f0ade23a3d8a42ba7f48ba2a92f36ea0d88542e4 Mon Sep 17 00:00:00 2001 From: Jesper Jensen Date: Sun, 15 Jun 2025 00:28:07 +0200 Subject: Time out lookup requests too --- src/proto.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/proto.c b/src/proto.c index ed23112..09a9e26 100644 --- a/src/proto.c +++ b/src/proto.c @@ -227,7 +227,7 @@ int send_lookup(struct dht* dht, struct nodeid* target, time_t now, const struct dht->requestdata[reqId].cont.lookup = &dht->lookup; dht->requestdata[reqId].fun = &lookup_response; - dht->requestdata[reqId].timeout = 0; + dht->requestdata[reqId].timeout = now + PROTO_TMOUT; dht->requestdata[reqId].timeout_fun = NULL; memcpy(&dht->requestdata[reqId].addr, dest_addr, dest_len); dht->requestdata[reqId].addr_len = dest_len; @@ -881,8 +881,11 @@ int proto_run(struct dht* dht, char* buff, size_t recv_len, struct sockaddr_in* if(difftime(now, dht->requestdata[i].timeout) < 0) continue; - prom_counter_inc(retries, NULL); - int rc = dht->requestdata[i].timeout_fun(dht, &dht->self, now, &dht->requestdata[i].cont, &msgbuff); + int rc = PROTO_EDISC; + if(dht->requestdata[i].timeout_fun != NULL) { + prom_counter_inc(retries, NULL); + rc = dht->requestdata[i].timeout_fun(dht, &dht->self, now, &dht->requestdata[i].cont, &msgbuff); + } if(rc == PROTO_ENOREQ) { prom_counter_inc(outbox_overflow, NULL); -- cgit v1.2.3