[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[PATCH] Fix stale descriptor refetch dropping connection
From: Marcus Griep <marcus@xxxxxxxx>
When a refetch is requested for a v2 hidden service descriptor,
but we already have one cached, proceed with the connection
rather than dropping it into limbo.
Signed-off-by: Marcus Griep <marcus@xxxxxxxx>
---
When making a connection, "rewrite_and_attach" considers a hidden
service descriptor to be stale after 15 minutes. When this occurs,
it asks the rendclient to refetch the descriptor. The rendclient
notices that it already has a v2 hidden service descriptor cached
and drops the request. This results in the connection falling
through the cracks as no function attempts to further the
connection attempt.
This fix adds a single line which, instead of dropping the
refetch request, passes the query on to be attempted with the
cached descriptor.
src/or/rendclient.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index 6fe3a69..a161c5c 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -495,6 +495,7 @@ rend_client_refetch_v2_renddesc(const rend_data_t *rend_query)
if (rend_cache_lookup_entry(rend_query->onion_address, -1, &e) > 0) {
log_info(LD_REND, "We would fetch a v2 rendezvous descriptor, but we "
"already have that descriptor here. Not fetching.");
+ rend_client_desc_trynow(rend_query->onion_address);
return;
}
log_debug(LD_REND, "Fetching v2 rendezvous descriptor for service %s",
--
1.6.0.4