Selaa lähdekoodia

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.
teor 7 vuotta sitten
vanhempi
commit
684778e705
2 muutettua tiedostoa jossa 8 lisäystä ja 4 poistoa
  1. 4 0
      changes/bug21599
  2. 4 4
      src/or/rendservice.c

+ 4 - 0
changes/bug21599

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

+ 4 - 4
src/or/rendservice.c

@@ -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;
     }