diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index 01f571e6c..51fc01108 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -1236,7 +1236,11 @@ networkstatus_get_reasonably_live_consensus(time_t now, int flavor) /** Check if we need to download a consensus during tor's bootstrap phase. * If we have no consensus, or our consensus is unusably old, return 1. * As soon as we have received a consensus, return 0, even if we don't have - * enough certificates to validate it. */ + * enough certificates to validate it. + * If a fallback directory gives us a consensus we can never get certs for, + * check_consensus_waiting_for_certs() will wait 20 minutes before failing + * the cert downloads. After that, a new consensus will be fetched from a + * randomly chosen fallback. */ MOCK_IMPL(int, networkstatus_consensus_is_bootstrapping,(time_t now)) { diff --git a/src/test/test_connection.c b/src/test/test_connection.c index 5aa7964ab..bf95b0b59 100644 --- a/src/test/test_connection.c +++ b/src/test/test_connection.c @@ -652,12 +652,8 @@ test_conn_download_status(void *arg) { dir_connection_t *conn = NULL; dir_connection_t *conn2 = NULL; - dir_connection_t *conn3 = NULL; dir_connection_t *conn4 = NULL; connection_t *ap_conn = NULL; - connection_t *ap_conn2 = NULL; - /* we never create an ap_conn for conn3 */ - connection_t *ap_conn4 = NULL; consensus_flavor_t usable_flavor = (consensus_flavor_t)arg; @@ -760,7 +756,8 @@ test_conn_download_status(void *arg) conn->base_.state = TEST_CONN_STATE; /* more connections, all not downloading */ - conn3 = test_conn_download_status_add_a_connection(res); + /* ignore the return value, it's free'd using the connection list */ + (void)test_conn_download_status_add_a_connection(res); tt_assert(networkstatus_consensus_is_already_downloading(res) == 0); tt_assert(networkstatus_consensus_is_already_downloading(other_res) == 0); tt_assert(connection_dir_count_by_purpose_and_resource( @@ -784,8 +781,9 @@ test_conn_download_status(void *arg) /* more connections, two downloading (should never happen, but needs * to be tested for completeness) */ conn2->base_.state = TEST_CONN_DL_STATE; - ap_conn2 = test_conn_get_linked_connection(TO_CONN(conn2), - TEST_CONN_ATTACHED_STATE); + /* ignore the return value, it's free'd using the connection list */ + (void)test_conn_get_linked_connection(TO_CONN(conn2), + TEST_CONN_ATTACHED_STATE); tt_assert(networkstatus_consensus_is_already_downloading(res) == 1); tt_assert(networkstatus_consensus_is_already_downloading(other_res) == 0); tt_assert(connection_dir_count_by_purpose_and_resource( @@ -823,8 +821,9 @@ test_conn_download_status(void *arg) * cache directory documents), both flavors downloading */ conn4->base_.state = TEST_CONN_DL_STATE; - ap_conn4 = test_conn_get_linked_connection(TO_CONN(conn4), - TEST_CONN_ATTACHED_STATE); + /* ignore the return value, it's free'd using the connection list */ + (void)test_conn_get_linked_connection(TO_CONN(conn4), + TEST_CONN_ATTACHED_STATE); tt_assert(networkstatus_consensus_is_already_downloading(res) == 1); tt_assert(networkstatus_consensus_is_already_downloading(other_res) == 1); tt_assert(connection_dir_count_by_purpose_and_resource( @@ -833,10 +832,9 @@ test_conn_download_status(void *arg) tt_assert(connection_dir_count_by_purpose_and_resource( TEST_CONN_RSRC_PURPOSE, other_res) == 1); - conn4->base_.state = TEST_CONN_STATE; done: - /* the teardown function removes all the connections */; + /* the teardown function removes all the connections in the global list*/; } #define CONNECTION_TESTCASE(name, fork, setup) \