diff --git a/ChangeLog b/ChangeLog index 562465f05d..7a1e920ba0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -33,6 +33,8 @@ Changes in version 0.1.2.4-alpha - 2006-11-?? correctly in the Windows installer. - Avoid assert failure when our cached-routers file is empty on startup. + - Don't corrupt last_guesssed_ip in router_new_address_suggestion() when + we're running as a client. Changes in version 0.1.2.3-alpha - 2006-10-29 diff --git a/src/or/router.c b/src/or/router.c index 27f401bed6..8c686441cd 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -1009,7 +1009,7 @@ static uint32_t last_guessed_ip = 0; void router_new_address_suggestion(const char *suggestion) { - uint32_t addr, cur; + uint32_t addr, cur = 0; struct in_addr in; or_options_t *options = get_options(); @@ -1022,8 +1022,10 @@ router_new_address_suggestion(const char *suggestion) log_debug(LD_DIR, "Got X-Your-Address-Is: %s.", suggestion); - if (!server_mode(options) || - resolve_my_address(LOG_INFO, options, &cur, NULL) >= 0) { + if (!server_mode(options)) + return; + + if (resolve_my_address(LOG_INFO, options, &cur, NULL) >= 0) { /* We're all set -- we already know our address. Great. */ last_guessed_ip = cur; /* store it in case we need it later */ return;