diff options
author | David Goulet <dgoulet@torproject.org> | 2018-11-26 14:40:22 -0500 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2018-11-26 14:45:53 -0500 |
commit | d37dbb09c2e8867cf2b87dc45e8646351754e94a (patch) | |
tree | 75860096fd57abf5d1f14f99bdfc35e271934083 | |
parent | cbe04d455016233f4759fe281c07dd7db6096c2a (diff) | |
download | tor-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>
-rw-r--r-- | changes/bug28619 | 6 | ||||
-rw-r--r-- | src/or/hs_service.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/changes/bug28619 b/changes/bug28619 new file mode 100644 index 0000000000..86be8cb2fb --- /dev/null +++ b/changes/bug28619 @@ -0,0 +1,6 @@ + o Minor bugfixes (hidden service v3): + - When deleting an ephemeral onion service (DEL_ONION), do not close any + rendezvous circuits in order to let the existing client connections + finish by themselves or closed by the application. The HS v2 is doing + that already so now we have the same behavior for all versions. Fixes + bug 28619; bugfix on 0.3.3.1-alpha. 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); |