Loading changes/bug14918 +8 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,11 @@ - Do not warn that we are missing directory information if we have decided not to fetch directory information due to a long period of idleness. Fixes part of bug 14918; bugfix on 0.2.6.2-alpha. - When deciding whether we have any exit nodes, only do processing for ExitNodes when the ExitNodes option is actually set. Fixes part of bug 14918; bugfix on 0.2.6.2-alpha. o Minor bugfixes (logging during bootstrap): - Correctly update and log the amount of directory information that has been fetched during the bootstrap process. Fixes part of bug 14918; bugfix on 0.2.6.2-alpha. src/or/nodelist.c +88 −72 Original line number Diff line number Diff line Loading @@ -1430,9 +1430,7 @@ compute_frac_paths_available(const networkstatus_t *consensus, smartlist_t *guards = smartlist_new(); smartlist_t *mid = smartlist_new(); smartlist_t *exits = smartlist_new(); smartlist_t *myexits= smartlist_new(); smartlist_t *myexits_unflagged = smartlist_new(); double f_guard, f_mid, f_exit, f_myexit, f_myexit_unflagged; double f_guard, f_mid, f_exit; double f_path = 0.0; /* Used to determine whether there are any exits in the consensus */ int np = 0; Loading Loading @@ -1494,6 +1492,25 @@ compute_frac_paths_available(const networkstatus_t *consensus, * browsing (as distinct from hidden service web browsing). */ } f_guard = frac_nodes_with_descriptors(guards, WEIGHT_FOR_GUARD); f_mid = frac_nodes_with_descriptors(mid, WEIGHT_FOR_MID); f_exit = frac_nodes_with_descriptors(exits, WEIGHT_FOR_EXIT); log_debug(LD_NET, "f_guard: %.2f, f_mid: %.2f, f_exit: %.2f", f_guard, f_mid, f_exit); smartlist_free(guards); smartlist_free(mid); smartlist_free(exits); if (options->ExitNodes) { double f_myexit, f_myexit_unflagged; smartlist_t *myexits= smartlist_new(); smartlist_t *myexits_unflagged = smartlist_new(); /* All nodes with exit flag in ExitNodes option */ count_usable_descriptors(&np, &nu, myexits, consensus, options, now, options->ExitNodes, USABLE_DESCRIPTOR_EXIT_ONLY); Loading Loading @@ -1530,9 +1547,6 @@ compute_frac_paths_available(const networkstatus_t *consensus, np, nu); f_guard = frac_nodes_with_descriptors(guards, WEIGHT_FOR_GUARD); f_mid = frac_nodes_with_descriptors(mid, WEIGHT_FOR_MID); f_exit = frac_nodes_with_descriptors(exits, WEIGHT_FOR_EXIT); f_myexit= frac_nodes_with_descriptors(myexits,WEIGHT_FOR_EXIT); f_myexit_unflagged= frac_nodes_with_descriptors(myexits_unflagged,WEIGHT_FOR_EXIT); Loading @@ -1551,9 +1565,6 @@ compute_frac_paths_available(const networkstatus_t *consensus, f_myexit = f_myexit_unflagged; } smartlist_free(guards); smartlist_free(mid); smartlist_free(exits); smartlist_free(myexits); smartlist_free(myexits_unflagged); Loading @@ -1563,6 +1574,7 @@ compute_frac_paths_available(const networkstatus_t *consensus, * and usable exits. */ if (f_myexit < f_exit) f_exit = f_myexit; } /* if the consensus has no exits, treat the exit fraction as 100% */ if (router_have_consensus_path() != CONSENSUS_PATH_EXIT) { Loading Loading @@ -1673,12 +1685,14 @@ update_router_have_minimum_dir_info(void) static ratelim_t last_warned = RATELIM_INIT(NOTICE_DIR_INFO_STATUS_INTERVAL); char *suppression_msg = NULL; if ((suppression_msg = rate_limit_log(&last_warned, time(NULL)))) { tor_snprintf(dir_info_status, sizeof(dir_info_status), "We need more %sdescriptors: we have %d/%d, and " "can only build %d%% of likely paths. (We have %s.)", using_md?"micro":"", num_present, num_usable, (int)(paths*100), status); if ((suppression_msg = rate_limit_log(&last_warned, time(NULL)))) { if (!should_delay_dir_fetches(options, NULL) && !directory_too_idle_to_fetch_descriptors(options, now)) { log_warn(LD_NET, "%s%s", dir_info_status, suppression_msg); Loading @@ -1694,12 +1708,14 @@ update_router_have_minimum_dir_info(void) static ratelim_t last_warned = RATELIM_INIT(NOTICE_DIR_INFO_STATUS_INTERVAL); char *suppression_msg = NULL; if ((suppression_msg = rate_limit_log(&last_warned, time(NULL)))) { tor_snprintf(dir_info_status, sizeof(dir_info_status), "We have enough %sdescriptors: we have %d/%d, and " "can build %d%% of likely paths. (We have %s.)", using_md?"micro":"", num_present, num_usable, (int)(paths*100), status); if ((suppression_msg = rate_limit_log(&last_warned, time(NULL)))) { log_info(LD_NET, "%s%s", dir_info_status, suppression_msg); tor_free(suppression_msg); } Loading Loading
changes/bug14918 +8 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,11 @@ - Do not warn that we are missing directory information if we have decided not to fetch directory information due to a long period of idleness. Fixes part of bug 14918; bugfix on 0.2.6.2-alpha. - When deciding whether we have any exit nodes, only do processing for ExitNodes when the ExitNodes option is actually set. Fixes part of bug 14918; bugfix on 0.2.6.2-alpha. o Minor bugfixes (logging during bootstrap): - Correctly update and log the amount of directory information that has been fetched during the bootstrap process. Fixes part of bug 14918; bugfix on 0.2.6.2-alpha.
src/or/nodelist.c +88 −72 Original line number Diff line number Diff line Loading @@ -1430,9 +1430,7 @@ compute_frac_paths_available(const networkstatus_t *consensus, smartlist_t *guards = smartlist_new(); smartlist_t *mid = smartlist_new(); smartlist_t *exits = smartlist_new(); smartlist_t *myexits= smartlist_new(); smartlist_t *myexits_unflagged = smartlist_new(); double f_guard, f_mid, f_exit, f_myexit, f_myexit_unflagged; double f_guard, f_mid, f_exit; double f_path = 0.0; /* Used to determine whether there are any exits in the consensus */ int np = 0; Loading Loading @@ -1494,6 +1492,25 @@ compute_frac_paths_available(const networkstatus_t *consensus, * browsing (as distinct from hidden service web browsing). */ } f_guard = frac_nodes_with_descriptors(guards, WEIGHT_FOR_GUARD); f_mid = frac_nodes_with_descriptors(mid, WEIGHT_FOR_MID); f_exit = frac_nodes_with_descriptors(exits, WEIGHT_FOR_EXIT); log_debug(LD_NET, "f_guard: %.2f, f_mid: %.2f, f_exit: %.2f", f_guard, f_mid, f_exit); smartlist_free(guards); smartlist_free(mid); smartlist_free(exits); if (options->ExitNodes) { double f_myexit, f_myexit_unflagged; smartlist_t *myexits= smartlist_new(); smartlist_t *myexits_unflagged = smartlist_new(); /* All nodes with exit flag in ExitNodes option */ count_usable_descriptors(&np, &nu, myexits, consensus, options, now, options->ExitNodes, USABLE_DESCRIPTOR_EXIT_ONLY); Loading Loading @@ -1530,9 +1547,6 @@ compute_frac_paths_available(const networkstatus_t *consensus, np, nu); f_guard = frac_nodes_with_descriptors(guards, WEIGHT_FOR_GUARD); f_mid = frac_nodes_with_descriptors(mid, WEIGHT_FOR_MID); f_exit = frac_nodes_with_descriptors(exits, WEIGHT_FOR_EXIT); f_myexit= frac_nodes_with_descriptors(myexits,WEIGHT_FOR_EXIT); f_myexit_unflagged= frac_nodes_with_descriptors(myexits_unflagged,WEIGHT_FOR_EXIT); Loading @@ -1551,9 +1565,6 @@ compute_frac_paths_available(const networkstatus_t *consensus, f_myexit = f_myexit_unflagged; } smartlist_free(guards); smartlist_free(mid); smartlist_free(exits); smartlist_free(myexits); smartlist_free(myexits_unflagged); Loading @@ -1563,6 +1574,7 @@ compute_frac_paths_available(const networkstatus_t *consensus, * and usable exits. */ if (f_myexit < f_exit) f_exit = f_myexit; } /* if the consensus has no exits, treat the exit fraction as 100% */ if (router_have_consensus_path() != CONSENSUS_PATH_EXIT) { Loading Loading @@ -1673,12 +1685,14 @@ update_router_have_minimum_dir_info(void) static ratelim_t last_warned = RATELIM_INIT(NOTICE_DIR_INFO_STATUS_INTERVAL); char *suppression_msg = NULL; if ((suppression_msg = rate_limit_log(&last_warned, time(NULL)))) { tor_snprintf(dir_info_status, sizeof(dir_info_status), "We need more %sdescriptors: we have %d/%d, and " "can only build %d%% of likely paths. (We have %s.)", using_md?"micro":"", num_present, num_usable, (int)(paths*100), status); if ((suppression_msg = rate_limit_log(&last_warned, time(NULL)))) { if (!should_delay_dir_fetches(options, NULL) && !directory_too_idle_to_fetch_descriptors(options, now)) { log_warn(LD_NET, "%s%s", dir_info_status, suppression_msg); Loading @@ -1694,12 +1708,14 @@ update_router_have_minimum_dir_info(void) static ratelim_t last_warned = RATELIM_INIT(NOTICE_DIR_INFO_STATUS_INTERVAL); char *suppression_msg = NULL; if ((suppression_msg = rate_limit_log(&last_warned, time(NULL)))) { tor_snprintf(dir_info_status, sizeof(dir_info_status), "We have enough %sdescriptors: we have %d/%d, and " "can build %d%% of likely paths. (We have %s.)", using_md?"micro":"", num_present, num_usable, (int)(paths*100), status); if ((suppression_msg = rate_limit_log(&last_warned, time(NULL)))) { log_info(LD_NET, "%s%s", dir_info_status, suppression_msg); tor_free(suppression_msg); } Loading