[tor-commits] [tor/maint-0.2.2] Don't build descriptors if ORPort auto is set and we have no OR listener

nickm at torproject.org nickm at torproject.org
Mon May 30 20:13:23 UTC 2011


commit 95ac3ea5946f723ddab474fe229a872669aee47f
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue May 17 21:42:35 2011 -0400

    Don't build descriptors if ORPort auto is set and we have no OR listener
    
    This situation can happen easily if you set 'ORPort auto' and
    'AccountingMax'.  Doing so means that when you have no ORPort, you
    won't be able to set an ORPort in a descriptor, so instead you would
    just generate lots of invalid descriptors, freaking out all the time.
    
    Possible fix for 3216; fix on 0.2.2.26-beta.
---
 changes/bug3216 |    4 ++++
 src/or/router.c |    4 ++++
 2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/changes/bug3216 b/changes/bug3216
new file mode 100644
index 0000000..599b5e1
--- /dev/null
+++ b/changes/bug3216
@@ -0,0 +1,4 @@
+  o Major bugfixes:
+    - Don't try to build descriptors if "ORPort auto" is set and we
+      don't know our actual ORPort yet.  Fix for bug 3216; bugfix on
+      0.2.2.26-beta.
diff --git a/src/or/router.c b/src/or/router.c
index 184715b..464cba0 100644
--- a/src/or/router.c
+++ b/src/or/router.c
@@ -802,6 +802,8 @@ decide_to_advertise_dirport(or_options_t *options, uint16_t dir_port)
     return 0;
   if (!check_whether_dirport_reachable())
     return 0;
+  if (!router_get_advertised_dir_port(options))
+    return 0;
 
   /* Section two: reasons to publish or not publish that the user
    * might find surprising. These are generally config options that
@@ -1136,6 +1138,8 @@ decide_if_publishable_server(void)
     return 0;
   if (authdir_mode(options))
     return 1;
+  if (!router_get_advertised_or_port(options))
+    return 0;
 
   return check_whether_orport_reachable();
 }





More information about the tor-commits mailing list