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>
This commit is contained in:
David Goulet 2018-11-26 14:40:22 -05:00
parent cbe04d4550
commit d37dbb09c2
2 changed files with 10 additions and 2 deletions

6
changes/bug28619 Normal file
View File

@ -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.

View File

@ -3105,8 +3105,10 @@ hs_service_del_ephemeral(const char *address)
goto err; goto err;
} }
/* Close circuits, remove from map and finally free. */ /* Close introduction circuits, remove from map and finally free. Notice
close_service_circuits(service); * 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); remove_service(hs_service_map, service);
hs_service_free(service); hs_service_free(service);