[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r16960: {tor} If we are not using BEGIN_DIR cells, don't attempt to contac (in tor/trunk: . src/or)



Author: kloesing
Date: 2008-09-24 18:29:22 -0400 (Wed, 24 Sep 2008)
New Revision: 16960

Modified:
   tor/trunk/ChangeLog
   tor/trunk/src/or/routerlist.c
Log:
If we are not using BEGIN_DIR cells, don't attempt to contact hidden service directories with non-open dir port.

Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog	2008-09-24 20:55:38 UTC (rev 16959)
+++ tor/trunk/ChangeLog	2008-09-24 22:29:22 UTC (rev 16960)
@@ -56,6 +56,8 @@
       port 80, we would previously reject the connection. Now, we assume
       the user knows what they were asking for. Fixes bug 752. Bugfix
       on 0.0.9rc5. Diagnosed by BarkerJr.
+    - If we are not using BEGIN_DIR cells, don't attempt to contact hidden
+      service directories with non-open dir port. Bugfix on 0.2.0.10-alpha.
 
   o Minor features:
     - Update to the "September 1 2008" ip-to-country file.

Modified: tor/trunk/src/or/routerlist.c
===================================================================
--- tor/trunk/src/or/routerlist.c	2008-09-24 20:55:38 UTC (rev 16959)
+++ tor/trunk/src/or/routerlist.c	2008-09-24 22:29:22 UTC (rev 16960)
@@ -4918,6 +4918,7 @@
 {
   int start, found, n_added = 0, i;
   networkstatus_t *c = networkstatus_get_latest_consensus();
+  int use_begindir = get_options()->TunnelDirConns;
   if (!c || !smartlist_len(c->routerstatus_list)) {
     log_warn(LD_REND, "We don't have a consensus, so we can't perform v2 "
              "rendezvous operations.");
@@ -4930,9 +4931,14 @@
   do {
     routerstatus_t *r = smartlist_get(c->routerstatus_list, i);
     if (r->is_hs_dir) {
-      smartlist_add(responsible_dirs, r);
+      if (r->dir_port || use_begindir)
+        smartlist_add(responsible_dirs, r);
+      else
+        log_info(LD_REND, "Not adding router '%s' to list of responsible "
+                 "hidden service directories, because we have no way of "
+                 "reaching it.", r->nickname);
       if (++n_added == REND_NUMBER_OF_CONSECUTIVE_REPLICAS)
-        return 0;
+        break;
     }
     if (++i == smartlist_len(c->routerstatus_list))
       i = 0;