diff options
author | Nick Mathewson <nickm@torproject.org> | 2016-01-18 19:51:57 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2016-01-18 19:51:57 -0500 |
commit | 83dfcfbc4a295ca52325f47291d109cd0a16ac8f (patch) | |
tree | 2b292b5eeddcdfcc6de739158a2bdea81449fd4e /src | |
parent | b34c5c6b8ac0d13d5e2bda188ff038f6ff7eb4f3 (diff) | |
parent | 6094a886cf9be92d29077b428554a75c9971a2ca (diff) | |
download | tor-83dfcfbc4a295ca52325f47291d109cd0a16ac8f.tar.gz tor-83dfcfbc4a295ca52325f47291d109cd0a16ac8f.zip |
Merge remote-tracking branch 'teor/bug18050' into maint-0.2.7
Diffstat (limited to 'src')
-rw-r--r-- | src/or/main.c | 10 | ||||
-rw-r--r-- | src/or/router.c | 13 |
2 files changed, 15 insertions, 8 deletions
diff --git a/src/or/main.c b/src/or/main.c index 46c679c83c..534a6acc51 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -1795,8 +1795,9 @@ second_elapsed_callback(periodic_timer_t *timer, void *arg) if (me && !check_whether_orport_reachable()) { char *address = tor_dup_ip(me->addr); log_warn(LD_CONFIG,"Your server (%s:%d) has not managed to confirm that " - "its ORPort is reachable. Please check your firewalls, ports, " - "address, /etc/hosts file, etc.", + "its ORPort is reachable. Relays do not publish descriptors " + "until their ORPort and DirPort are reachable. Please check " + "your firewalls, ports, address, /etc/hosts file, etc.", address, me->or_port); control_event_server_status(LOG_WARN, "REACHABILITY_FAILED ORADDRESS=%s:%d", @@ -1808,8 +1809,9 @@ second_elapsed_callback(periodic_timer_t *timer, void *arg) char *address = tor_dup_ip(me->addr); log_warn(LD_CONFIG, "Your server (%s:%d) has not managed to confirm that its " - "DirPort is reachable. Please check your firewalls, ports, " - "address, /etc/hosts file, etc.", + "DirPort is reachable. Relays do not publish descriptors " + "until their ORPort and DirPort are reachable. Please check " + "your firewalls, ports, address, /etc/hosts file, etc.", address, me->dir_port); control_event_server_status(LOG_WARN, "REACHABILITY_FAILED DIRADDRESS=%s:%d", diff --git a/src/or/router.c b/src/or/router.c index 8fdad9a5fa..841f6fde1b 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -1267,7 +1267,8 @@ router_orport_found_reachable(void) char *address = tor_dup_ip(me->addr); log_notice(LD_OR,"Self-testing indicates your ORPort is reachable from " "the outside. Excellent.%s", - get_options()->PublishServerDescriptor_ != NO_DIRINFO ? + get_options()->PublishServerDescriptor_ != NO_DIRINFO + && check_whether_dirport_reachable() ? " Publishing server descriptor." : ""); can_reach_or_port = 1; mark_my_descriptor_dirty("ORPort found reachable"); @@ -1291,7 +1292,10 @@ router_dirport_found_reachable(void) if (!can_reach_dir_port && me) { char *address = tor_dup_ip(me->addr); log_notice(LD_DIRSERV,"Self-testing indicates your DirPort is reachable " - "from the outside. Excellent."); + "from the outside. Excellent.%s", + get_options()->PublishServerDescriptor_ != NO_DIRINFO + && check_whether_orport_reachable() ? + " Publishing server descriptor." : ""); can_reach_dir_port = 1; if (decide_to_advertise_dirport(get_options(), me->dir_port)) { mark_my_descriptor_dirty("DirPort found reachable"); @@ -1494,7 +1498,8 @@ proxy_mode(const or_options_t *options) * and * - We have ORPort set * and - * - We believe we are reachable from the outside; or + * - We believe both our ORPort and DirPort (if present) are reachable from + * the outside; or * - We are an authoritative directory server. */ static int @@ -1513,7 +1518,7 @@ decide_if_publishable_server(void) if (!router_get_advertised_or_port(options)) return 0; - return check_whether_orport_reachable(); + return check_whether_orport_reachable() && check_whether_dirport_reachable(); } /** Initiate server descriptor upload as reasonable (if server is publishable, |