Simplify hidden service descriptor creation

Use an existing flag to check if an introduction point is established.

Cleanup after 21596.

Fixes bug 21599; bugfix on 0.2.7.2-alpha.
This commit is contained in:
teor 2017-03-02 15:55:33 +11:00 committed by Nick Mathewson
parent 3e2d06bd3d
commit 684778e705
2 changed files with 8 additions and 4 deletions

4
changes/bug21599 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (hidden services):
- Simplify hidden service descriptor creation by using an existing flag
to check if an introduction point is established.
Fixes bug 21599; bugfix on 0.2.7.2-alpha.

View File

@ -1035,7 +1035,6 @@ static void
rend_service_update_descriptor(rend_service_t *service)
{
rend_service_descriptor_t *d;
origin_circuit_t *circ;
int i;
rend_service_descriptor_free(service->desc);
@ -1056,9 +1055,10 @@ rend_service_update_descriptor(rend_service_t *service)
/* This intro point won't be listed in the descriptor... */
intro_svc->listed_in_last_desc = 0;
circ = find_intro_circuit(intro_svc, service->pk_digest);
if (!circ || circ->base_.purpose != CIRCUIT_PURPOSE_S_INTRO) {
/* This intro point's circuit isn't finished yet. Don't list it. */
/* circuit_established is set in rend_service_intro_established(), and
* checked every second in rend_consider_services_intro_points(), so it's
* safe to use it here */
if (!intro_svc->circuit_established) {
continue;
}