summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2018-11-26 14:40:22 -0500
committerDavid Goulet <dgoulet@torproject.org>2018-11-26 14:45:53 -0500
commitd37dbb09c2e8867cf2b87dc45e8646351754e94a (patch)
tree75860096fd57abf5d1f14f99bdfc35e271934083 /src
parentcbe04d455016233f4759fe281c07dd7db6096c2a (diff)
downloadtor-d37dbb09c2e8867cf2b87dc45e8646351754e94a.tar.gz
tor-d37dbb09c2e8867cf2b87dc45e8646351754e94a.zip
hs-v3: Do not close RP circuits when deleting an ephemeral service
Bug reported on tor-dev@ and here is the detail explanation of the issue: https://lists.torproject.org/pipermail/tor-dev/2018-November/013558.html Fixes bug #28619 Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'src')
-rw-r--r--src/or/hs_service.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/or/hs_service.c b/src/or/hs_service.c
index 4c67aff429..3273705ae9 100644
--- a/src/or/hs_service.c
+++ b/src/or/hs_service.c
@@ -3105,8 +3105,10 @@ hs_service_del_ephemeral(const char *address)
goto err;
}
- /* Close circuits, remove from map and finally free. */
- close_service_circuits(service);
+ /* Close introduction circuits, remove from map and finally free. Notice
+ * that the rendezvous circuits aren't closed in order for any existing
+ * connections to finish. We let the application terminate them. */
+ close_service_intro_circuits(service);
remove_service(hs_service_map, service);
hs_service_free(service);