Loading changes/bug11156 0 → 100644 +5 −0 Original line number Diff line number Diff line o Minor bugfixes (clients): - Fix a bug where we would attempt to connect to bridges before our pluggable transports were configured, which resulted in some erroneous log messages. Fixes bug 11156; bugfix on 0.2.3.2-alpha. src/or/microdesc.c +1 −1 Original line number Diff line number Diff line Loading @@ -721,7 +721,7 @@ update_microdesc_downloads(time_t now) smartlist_t *missing; digestmap_t *pending; if (should_delay_dir_fetches(options)) if (should_delay_dir_fetches(options, NULL)) return; if (directory_too_idle_to_fetch_descriptors(options, now)) return; Loading src/or/networkstatus.c +30 −6 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ #include "router.h" #include "routerlist.h" #include "routerparse.h" #include "transports.h" /** Map from lowercase nickname to identity digest of named server, if any. */ static strmap_t *named_server_map = NULL; Loading Loading @@ -884,14 +885,37 @@ update_consensus_networkstatus_fetch_time(time_t now) /** Return 1 if there's a reason we shouldn't try any directory * fetches yet (e.g. we demand bridges and none are yet known). * Else return 0. */ * Else return 0. * If we return 1 and <b>msg_out</b> is provided, set <b>msg_out</b> * to an explanation of why directory fetches are delayed. (If we * return 0, we set msg_out to NULL.) */ int should_delay_dir_fetches(const or_options_t *options) should_delay_dir_fetches(const or_options_t *options, const char **msg_out) { if (options->UseBridges && !any_bridge_descriptors_known()) { log_info(LD_DIR, "delaying dir fetches (no running bridges known)"); if (msg_out) { *msg_out = NULL; } if (options->UseBridges) { if (!any_bridge_descriptors_known()) { if (msg_out) { *msg_out = "No running bridges"; } log_info(LD_DIR, "Delaying dir fetches (no running bridges known)"); return 1; } if (pt_proxies_configuration_pending()) { if (msg_out) { *msg_out = "Pluggable transport proxies still configuring"; } log_info(LD_DIR, "Delaying dir fetches (pt proxies still configuring)"); return 1; } } return 0; } Loading @@ -901,7 +925,7 @@ void update_networkstatus_downloads(time_t now) { const or_options_t *options = get_options(); if (should_delay_dir_fetches(options)) if (should_delay_dir_fetches(options, NULL)) return; update_consensus_networkstatus_downloads(now); update_certificate_downloads(now); Loading src/or/networkstatus.h +1 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,7 @@ int networkstatus_nickname_is_unnamed(const char *nickname); void networkstatus_consensus_download_failed(int status_code, const char *flavname); void update_consensus_networkstatus_fetch_time(time_t now); int should_delay_dir_fetches(const or_options_t *options); int should_delay_dir_fetches(const or_options_t *options,const char **msg_out); void update_networkstatus_downloads(time_t now); void update_certificate_downloads(time_t now); int consensus_is_waiting_for_certs(void); Loading src/or/nodelist.c +4 −4 Original line number Diff line number Diff line Loading @@ -1477,6 +1477,7 @@ update_router_have_minimum_dir_info(void) const networkstatus_t *consensus = networkstatus_get_reasonably_live_consensus(now,usable_consensus_flavor()); int using_md; const char *delay_fetches_msg = NULL; if (!consensus) { if (!networkstatus_get_latest_consensus()) Loading @@ -1489,10 +1490,9 @@ update_router_have_minimum_dir_info(void) goto done; } if (should_delay_dir_fetches(get_options())) { log_notice(LD_DIR, "no known bridge descriptors running yet; stalling"); strlcpy(dir_info_status, "No live bridge descriptors.", sizeof(dir_info_status)); if (should_delay_dir_fetches(get_options(), &delay_fetches_msg)) { log_notice(LD_DIR, "Delaying dir fetches: %s", delay_fetches_msg); strlcpy(dir_info_status, "%s", sizeof(dir_info_status)); res = 0; goto done; } Loading Loading
changes/bug11156 0 → 100644 +5 −0 Original line number Diff line number Diff line o Minor bugfixes (clients): - Fix a bug where we would attempt to connect to bridges before our pluggable transports were configured, which resulted in some erroneous log messages. Fixes bug 11156; bugfix on 0.2.3.2-alpha.
src/or/microdesc.c +1 −1 Original line number Diff line number Diff line Loading @@ -721,7 +721,7 @@ update_microdesc_downloads(time_t now) smartlist_t *missing; digestmap_t *pending; if (should_delay_dir_fetches(options)) if (should_delay_dir_fetches(options, NULL)) return; if (directory_too_idle_to_fetch_descriptors(options, now)) return; Loading
src/or/networkstatus.c +30 −6 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ #include "router.h" #include "routerlist.h" #include "routerparse.h" #include "transports.h" /** Map from lowercase nickname to identity digest of named server, if any. */ static strmap_t *named_server_map = NULL; Loading Loading @@ -884,14 +885,37 @@ update_consensus_networkstatus_fetch_time(time_t now) /** Return 1 if there's a reason we shouldn't try any directory * fetches yet (e.g. we demand bridges and none are yet known). * Else return 0. */ * Else return 0. * If we return 1 and <b>msg_out</b> is provided, set <b>msg_out</b> * to an explanation of why directory fetches are delayed. (If we * return 0, we set msg_out to NULL.) */ int should_delay_dir_fetches(const or_options_t *options) should_delay_dir_fetches(const or_options_t *options, const char **msg_out) { if (options->UseBridges && !any_bridge_descriptors_known()) { log_info(LD_DIR, "delaying dir fetches (no running bridges known)"); if (msg_out) { *msg_out = NULL; } if (options->UseBridges) { if (!any_bridge_descriptors_known()) { if (msg_out) { *msg_out = "No running bridges"; } log_info(LD_DIR, "Delaying dir fetches (no running bridges known)"); return 1; } if (pt_proxies_configuration_pending()) { if (msg_out) { *msg_out = "Pluggable transport proxies still configuring"; } log_info(LD_DIR, "Delaying dir fetches (pt proxies still configuring)"); return 1; } } return 0; } Loading @@ -901,7 +925,7 @@ void update_networkstatus_downloads(time_t now) { const or_options_t *options = get_options(); if (should_delay_dir_fetches(options)) if (should_delay_dir_fetches(options, NULL)) return; update_consensus_networkstatus_downloads(now); update_certificate_downloads(now); Loading
src/or/networkstatus.h +1 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,7 @@ int networkstatus_nickname_is_unnamed(const char *nickname); void networkstatus_consensus_download_failed(int status_code, const char *flavname); void update_consensus_networkstatus_fetch_time(time_t now); int should_delay_dir_fetches(const or_options_t *options); int should_delay_dir_fetches(const or_options_t *options,const char **msg_out); void update_networkstatus_downloads(time_t now); void update_certificate_downloads(time_t now); int consensus_is_waiting_for_certs(void); Loading
src/or/nodelist.c +4 −4 Original line number Diff line number Diff line Loading @@ -1477,6 +1477,7 @@ update_router_have_minimum_dir_info(void) const networkstatus_t *consensus = networkstatus_get_reasonably_live_consensus(now,usable_consensus_flavor()); int using_md; const char *delay_fetches_msg = NULL; if (!consensus) { if (!networkstatus_get_latest_consensus()) Loading @@ -1489,10 +1490,9 @@ update_router_have_minimum_dir_info(void) goto done; } if (should_delay_dir_fetches(get_options())) { log_notice(LD_DIR, "no known bridge descriptors running yet; stalling"); strlcpy(dir_info_status, "No live bridge descriptors.", sizeof(dir_info_status)); if (should_delay_dir_fetches(get_options(), &delay_fetches_msg)) { log_notice(LD_DIR, "Delaying dir fetches: %s", delay_fetches_msg); strlcpy(dir_info_status, "%s", sizeof(dir_info_status)); res = 0; goto done; } Loading