Browse Source

Don't allow all ORPort values to be NoAdvertise

Fix for bug #9366
Nick Mathewson 10 years ago
parent
commit
b9f9110ac7
2 changed files with 11 additions and 0 deletions
  1. 4 0
      changes/bug9366
  2. 7 0
      src/or/config.c

+ 4 - 0
changes/bug9366

@@ -0,0 +1,4 @@
+  o Minor features (usability):
+    - Warn and fail if a server is configured not to advertise any
+      ORPorts at all. (We need *something* to put in our descriptor, or
+      we just won't work.)

+ 7 - 0
src/or/config.c

@@ -5509,6 +5509,13 @@ check_server_ports(const smartlist_t *ports,
              "listening on one.");
     r = -1;
   }
+  if (n_orport_listeners && !n_orport_advertised) {
+    log_warn(LD_CONFIG, "We are listening on an ORPort, but not advertising "
+             "any ORPorts. This will keep us from building a %s "
+             "descriptor, and make us impossible to use.",
+             options->BridgeRelay ? "bridge" : "router");
+    r = -1;
+  }
   if (n_dirport_advertised && !n_dirport_listeners) {
     log_warn(LD_CONFIG, "We are advertising a DirPort, but not actually "
              "listening on one.");