mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Have directory_get_from_all_authorities use requests.
This commit is contained in:
+9
-7
@@ -655,15 +655,17 @@ directory_get_from_all_authorities(uint8_t dir_purpose,
|
||||
|
||||
SMARTLIST_FOREACH_BEGIN(router_get_trusted_dir_servers(),
|
||||
dir_server_t *, ds) {
|
||||
routerstatus_t *rs;
|
||||
if (router_digest_is_me(ds->digest))
|
||||
continue;
|
||||
if (!(ds->type & V3_DIRINFO))
|
||||
continue;
|
||||
rs = &ds->fake_status;
|
||||
directory_initiate_command_routerstatus(rs, dir_purpose, router_purpose,
|
||||
DIRIND_ONEHOP, resource, NULL,
|
||||
0, 0, NULL);
|
||||
const routerstatus_t *rs = &ds->fake_status;
|
||||
directory_request_t *req = directory_request_new(dir_purpose);
|
||||
directory_request_set_routerstatus(req, rs);
|
||||
directory_request_set_router_purpose(req, router_purpose);
|
||||
directory_request_set_resource(req, resource);
|
||||
directory_initiate_request(req);
|
||||
directory_request_free(req);
|
||||
} SMARTLIST_FOREACH_END(ds);
|
||||
}
|
||||
|
||||
@@ -1320,8 +1322,8 @@ directory_request_set_dir_from_routerstatus(directory_request_t *req)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
directory_initiate_request(directory_request_t *request)
|
||||
MOCK_IMPL(void,
|
||||
directory_initiate_request,(directory_request_t *request))
|
||||
{
|
||||
tor_assert(request);
|
||||
if (request->routerstatus) {
|
||||
|
||||
+1
-1
@@ -91,7 +91,7 @@ void directory_initiate_command_routerstatus_rend(const routerstatus_t *status,
|
||||
const rend_data_t *rend_query,
|
||||
struct circuit_guard_state_t *guard_state);
|
||||
|
||||
void directory_initiate_request(directory_request_t *request);
|
||||
MOCK_DECL(void, directory_initiate_request, (directory_request_t *request));
|
||||
|
||||
int parse_http_response(const char *headers, int *code, time_t *date,
|
||||
compress_method_t *compression, char **response);
|
||||
|
||||
+12
-3
@@ -4541,6 +4541,8 @@ directory_initiate_command_routerstatus, (const routerstatus_t *status,
|
||||
size_t payload_len,
|
||||
time_t if_modified_since,
|
||||
circuit_guard_state_t *guardstate));
|
||||
NS_DECL(void,
|
||||
directory_initiate_request, (directory_request_t *req));
|
||||
|
||||
static void
|
||||
test_dir_should_not_init_request_to_ourselves(void *data)
|
||||
@@ -4616,7 +4618,7 @@ test_dir_should_init_request_to_dir_auths(void *data)
|
||||
dir_server_t *ds = NULL;
|
||||
(void) data;
|
||||
|
||||
NS_MOCK(directory_initiate_command_routerstatus);
|
||||
NS_MOCK(directory_initiate_request);
|
||||
|
||||
clear_dir_servers();
|
||||
routerlist_free_all();
|
||||
@@ -4627,11 +4629,11 @@ test_dir_should_init_request_to_dir_auths(void *data)
|
||||
dir_server_add(ds);
|
||||
|
||||
directory_get_from_all_authorities(DIR_PURPOSE_FETCH_STATUS_VOTE, 0, NULL);
|
||||
tt_int_op(CALLED(directory_initiate_command_routerstatus), OP_EQ, 1);
|
||||
tt_int_op(CALLED(directory_initiate_request), OP_EQ, 1);
|
||||
|
||||
directory_get_from_all_authorities(DIR_PURPOSE_FETCH_DETACHED_SIGNATURES, 0,
|
||||
NULL);
|
||||
tt_int_op(CALLED(directory_initiate_command_routerstatus), OP_EQ, 2);
|
||||
tt_int_op(CALLED(directory_initiate_request), OP_EQ, 2);
|
||||
|
||||
done:
|
||||
NS_UNMOCK(directory_initiate_command_routerstatus);
|
||||
@@ -4662,6 +4664,13 @@ NS(directory_initiate_command_routerstatus)(const routerstatus_t *status,
|
||||
CALLED(directory_initiate_command_routerstatus)++;
|
||||
}
|
||||
|
||||
void
|
||||
NS(directory_initiate_request)(directory_request_t *req)
|
||||
{
|
||||
(void)req;
|
||||
CALLED(directory_initiate_request)++;
|
||||
}
|
||||
|
||||
static void
|
||||
test_dir_choose_compression_level(void* data)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user