[tor-commits] [tor/master] Record which intro points were listed in the last HS desc

nickm at torproject.org nickm at torproject.org
Wed Nov 30 01:55:00 UTC 2011


commit 3f6a2d3e2a83d60f287c485c4f444220792b0a66
Author: Robert Ransom <rransom.8774 at gmail.com>
Date:   Thu Oct 13 08:48:31 2011 -0700

    Record which intro points were listed in the last HS desc
---
 src/or/or.h          |    4 ++++
 src/or/rendservice.c |    7 +++++++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/or/or.h b/src/or/or.h
index 215bde2..e1bd25c 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -3481,6 +3481,10 @@ typedef struct rend_intro_point_t {
    * circuit-build timeout.  See also MAX_INTRO_POINT_REACHABILITY_FAILURES. */
   unsigned int unreachable_count : 3;
 
+  /** (Service side only) Flag indicating that this intro point was
+   * included in the last HS descriptor we generated. */
+  unsigned int listed_in_last_desc : 1;
+
   /** (Service side only) The number of INTRODUCE2 cells this intro
    * point's circuit has received. */
   unsigned int introduction_count : 24;
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index a341dd6..96ab7a6 100644
--- a/src/or/rendservice.c
+++ b/src/or/rendservice.c
@@ -544,10 +544,17 @@ rend_service_update_descriptor(rend_service_t *service)
   for (i = 0; i < smartlist_len(service->intro_nodes); ++i) {
     rend_intro_point_t *intro_svc = smartlist_get(service->intro_nodes, i);
     rend_intro_point_t *intro_desc;
+
+    /* 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)
       continue;
 
+    /* ...unless this intro point is listed in the descriptor. */
+    intro_svc->listed_in_last_desc = 1;
+
     /* We have an entirely established intro circuit.  Publish it in
      * our descriptor. */
     intro_desc = tor_malloc_zero(sizeof(rend_intro_point_t));





More information about the tor-commits mailing list