[tor-commits] [tor/master] Simplify hidden service descriptor creation

nickm at torproject.org nickm at torproject.org
Sun Mar 5 04:17:03 UTC 2017


commit 684778e705b0e873e61a4befc4f1017db795cc66
Author: teor <teor2345 at gmail.com>
Date:   Thu Mar 2 15:55:33 2017 +1100

    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.
---
 changes/bug21599     | 4 ++++
 src/or/rendservice.c | 8 ++++----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/changes/bug21599 b/changes/bug21599
new file mode 100644
index 0000000..fe0f21a
--- /dev/null
+++ b/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.
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index c23d45c..5155899 100644
--- a/src/or/rendservice.c
+++ b/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;
     }
 





More information about the tor-commits mailing list