Commit b97d9abd authored by Nick Mathewson's avatar Nick Mathewson 🐘
Browse files

Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2

parents 0588330c 1a9d19e9
Loading
Loading
Loading
Loading

changes/bug1172

0 → 100644
+9 −0
Changes for changes/bug1172: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
  o Minor bugfixes:
    - When we restart our relay, we might get a successful connection
      from the outside before we've started our reachability tests,
      triggering a warning: "ORPort found reachable, but I have no
      routerinfo yet. Failing to inform controller of success." This
      bug was harmless unless Tor is running under a controller
      like Vidalia, in which case the controller would never get a
      REACHABILITY_SUCCEEDED status event. Bugfix on 0.1.2.6-alpha;
      fixes bug 1172.
+3 −13
Changes for src/or/router.c: 3 added lines, 13 removed lines.
Original line number Diff line number Diff line
@@ -881,19 +881,14 @@ consider_testing_reachability(int test_or, int test_dir)
void
router_orport_found_reachable(void)
{
  if (!can_reach_or_port) {
  routerinfo_t *me = router_get_my_routerinfo();
  if (!can_reach_or_port && me) {
    log_notice(LD_OR,"Self-testing indicates your ORPort is reachable from "
               "the outside. Excellent.%s",
               get_options()->_PublishServerDescriptor != NO_AUTHORITY ?
                 " Publishing server descriptor." : "");
    can_reach_or_port = 1;
    mark_my_descriptor_dirty();
    if (!me) { /* should never happen */
      log_warn(LD_BUG, "ORPort found reachable, but I have no routerinfo "
               "yet. Failing to inform controller of success.");
      return;
    }
    control_event_server_status(LOG_NOTICE,
                                "REACHABILITY_SUCCEEDED ORADDRESS=%s:%d",
                                me->address, me->or_port);
@@ -904,18 +899,13 @@ router_orport_found_reachable(void)
void
router_dirport_found_reachable(void)
{
  if (!can_reach_dir_port) {
  routerinfo_t *me = router_get_my_routerinfo();
  if (!can_reach_dir_port && me) {
    log_notice(LD_DIRSERV,"Self-testing indicates your DirPort is reachable "
               "from the outside. Excellent.");
    can_reach_dir_port = 1;
    if (!me || decide_to_advertise_dirport(get_options(), me->dir_port))
    if (decide_to_advertise_dirport(get_options(), me->dir_port))
      mark_my_descriptor_dirty();
    if (!me) { /* should never happen */
      log_warn(LD_BUG, "DirPort found reachable, but I have no routerinfo "
               "yet. Failing to inform controller of success.");
      return;
    }
    control_event_server_status(LOG_NOTICE,
                                "REACHABILITY_SUCCEEDED DIRADDRESS=%s:%d",
                                me->address, me->dir_port);