commit 3327e675fdb16b2109fb384cbc030ed3d4c86442 Author: Nick Mathewson nickm@torproject.org Date: Fri Apr 21 15:14:52 2017 -0400
Remove old directory_initiate_command_*() functions. --- src/or/directory.c | 132 ++-------------------------------------------------- src/or/directory.h | 30 ------------ src/test/test_dir.c | 51 ++++---------------- 3 files changed, 12 insertions(+), 201 deletions(-)
diff --git a/src/or/directory.c b/src/or/directory.c index 12c45cf..41d96c6 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -772,78 +772,6 @@ directory_choose_address_routerstatus(const routerstatus_t *status, return 0; }
-/** Same as directory_initiate_command_routerstatus(), but accepts - * rendezvous data to fetch a hidden service descriptor. */ -void -directory_initiate_command_routerstatus_rend(const routerstatus_t *status, - uint8_t dir_purpose, - uint8_t router_purpose, - dir_indirection_t indirection, - const char *resource, - const char *payload, - size_t payload_len, - time_t if_modified_since, - const rend_data_t *rend_query, - circuit_guard_state_t *guard_state) -{ - directory_request_t *req = directory_request_new(dir_purpose); - directory_request_set_routerstatus(req, status); - directory_request_set_router_purpose(req, router_purpose); - directory_request_set_indirection(req, indirection); - - if (resource) - directory_request_set_resource(req, resource); - if (payload) - directory_request_set_payload(req, payload, payload_len); - if (if_modified_since) - directory_request_set_if_modified_since(req, if_modified_since); - if (rend_query) - directory_request_set_rend_query(req, rend_query); - if (guard_state) - directory_request_set_guard_state(req, guard_state); - - /* We don't retry the alternate OR/Dir address for the same directory if - * the address we choose fails (#6772). - * Instead, we'll retry another directory on failure. */ - - directory_initiate_request(req); - - directory_request_free(req); -} - -/** Launch a new connection to the directory server <b>status</b> to - * upload or download a server or rendezvous - * descriptor. <b>dir_purpose</b> determines what - * kind of directory connection we're launching, and must be one of - * DIR_PURPOSE_{FETCH|UPLOAD}_{DIR|RENDDESC_V2}. <b>router_purpose</b> - * specifies the descriptor purposes we have in mind (currently only - * used for FETCH_DIR). - * - * When uploading, <b>payload</b> and <b>payload_len</b> determine the content - * of the HTTP post. Otherwise, <b>payload</b> should be NULL. - * - * When fetching a rendezvous descriptor, <b>resource</b> is the service ID we - * want to fetch. - */ -MOCK_IMPL(void, directory_initiate_command_routerstatus, - (const routerstatus_t *status, - uint8_t dir_purpose, - uint8_t router_purpose, - dir_indirection_t indirection, - const char *resource, - const char *payload, - size_t payload_len, - time_t if_modified_since, - circuit_guard_state_t *guard_state)) -{ - directory_initiate_command_routerstatus_rend(status, dir_purpose, - router_purpose, - indirection, resource, - payload, payload_len, - if_modified_since, NULL, - guard_state); -} - /** Return true iff <b>conn</b> is the client side of a directory connection * we launched to ourself in order to determine the reachability of our * dir_port. */ @@ -1085,62 +1013,6 @@ directory_command_should_use_begindir(const or_options_t *options, return 1; }
-/** Helper for directory_initiate_command_rend: send the - * command to a server whose OR address/port is <b>or_addr</b>/<b>or_port</b>, - * whose directory address/port is <b>dir_addr</b>/<b>dir_port</b>, whose - * identity key digest is <b>digest</b>, with purposes <b>dir_purpose</b> and - * <b>router_purpose</b>, making an (in)direct connection as specified in - * <b>indirection</b>, with command <b>resource</b>, <b>payload</b> of - * <b>payload_len</b>, and asking for a result only <b>if_modified_since</b>. - */ -void -directory_initiate_command(const tor_addr_t *or_addr, uint16_t or_port, - const tor_addr_t *dir_addr, uint16_t dir_port, - const char *digest, - uint8_t dir_purpose, uint8_t router_purpose, - dir_indirection_t indirection, const char *resource, - const char *payload, size_t payload_len, - time_t if_modified_since) -{ - tor_addr_port_t or_ap, dir_ap; - - /* Use the null tor_addr and 0 port if the address or port isn't valid. */ - if (tor_addr_port_is_valid(or_addr, or_port, 0)) { - tor_addr_copy(&or_ap.addr, or_addr); - or_ap.port = or_port; - } else { - /* the family doesn't matter here, so make it IPv4 */ - tor_addr_make_null(&or_ap.addr, AF_INET); - or_ap.port = or_port = 0; - } - - if (tor_addr_port_is_valid(dir_addr, dir_port, 0)) { - tor_addr_copy(&dir_ap.addr, dir_addr); - dir_ap.port = dir_port; - } else { - /* the family doesn't matter here, so make it IPv4 */ - tor_addr_make_null(&dir_ap.addr, AF_INET); - dir_ap.port = dir_port = 0; - } - - directory_request_t *req = directory_request_new(dir_purpose); - directory_request_set_or_addr_port(req, &or_ap); - directory_request_set_dir_addr_port(req, &dir_ap); - directory_request_set_directory_id_digest(req, digest); - - directory_request_set_router_purpose(req, router_purpose); - directory_request_set_indirection(req, indirection); - if (resource) - directory_request_set_resource(req, resource); - if (payload) - directory_request_set_payload(req, payload, payload_len); - if (if_modified_since) - directory_request_set_if_modified_since(req, if_modified_since); - - directory_initiate_request(req); - directory_request_free(req); -} - struct directory_request_t { tor_addr_port_t or_addr_port; tor_addr_port_t dir_addr_port; @@ -1630,7 +1502,9 @@ copy_ipv6_address(char* destination, const char* source, size_t len, }
/** Queue an appropriate HTTP command on conn->outbuf. The other args - * are as in directory_initiate_command(). + * are as in directory_request_set_...() + * + * */ static void directory_send_command(dir_connection_t *conn, diff --git a/src/or/directory.h b/src/or/directory.h index 56bbfe4..7399b70 100644 --- a/src/or/directory.h +++ b/src/or/directory.h @@ -69,28 +69,6 @@ void directory_request_set_guard_state(directory_request_t *req, void directory_request_set_routerstatus(directory_request_t *req, const routerstatus_t *rs);
-MOCK_DECL(void, directory_initiate_command_routerstatus, - (const routerstatus_t *status, - uint8_t dir_purpose, - uint8_t router_purpose, - dir_indirection_t indirection, - const char *resource, - const char *payload, - size_t payload_len, - time_t if_modified_since, - struct circuit_guard_state_t *guard_state)); - -void directory_initiate_command_routerstatus_rend(const routerstatus_t *status, - uint8_t dir_purpose, - uint8_t router_purpose, - dir_indirection_t indirection, - const char *resource, - const char *payload, - size_t payload_len, - time_t if_modified_since, - const rend_data_t *rend_query, - struct circuit_guard_state_t *guard_state); - MOCK_DECL(void, directory_initiate_request, (directory_request_t *request));
int parse_http_response(const char *headers, int *code, time_t *date, @@ -102,14 +80,6 @@ int connection_dir_process_inbuf(dir_connection_t *conn); int connection_dir_finished_flushing(dir_connection_t *conn); int connection_dir_finished_connecting(dir_connection_t *conn); void connection_dir_about_to_close(dir_connection_t *dir_conn); -void directory_initiate_command(const tor_addr_t *or_addr, uint16_t or_port, - const tor_addr_t *dir_addr, uint16_t dir_port, - const char *digest, - uint8_t dir_purpose, uint8_t router_purpose, - dir_indirection_t indirection, - const char *resource, - const char *payload, size_t payload_len, - time_t if_modified_since);
#define DSR_HEX (1<<0) #define DSR_BASE64 (1<<1) diff --git a/src/test/test_dir.c b/src/test/test_dir.c index 048b714..048d773 100644 --- a/src/test/test_dir.c +++ b/src/test/test_dir.c @@ -4532,16 +4532,6 @@ test_dir_should_use_directory_guards(void *data) }
NS_DECL(void, -directory_initiate_command_routerstatus, (const routerstatus_t *status, - uint8_t dir_purpose, - uint8_t router_purpose, - dir_indirection_t indirection, - const char *resource, - const char *payload, - 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 @@ -4552,7 +4542,7 @@ test_dir_should_not_init_request_to_ourselves(void *data) crypto_pk_t *key = pk_generate(2); (void) data;
- NS_MOCK(directory_initiate_command_routerstatus); + NS_MOCK(directory_initiate_request);
clear_dir_servers(); routerlist_free_all(); @@ -4567,15 +4557,15 @@ test_dir_should_not_init_request_to_ourselves(void *data) dir_server_add(ourself);
directory_get_from_all_authorities(DIR_PURPOSE_FETCH_STATUS_VOTE, 0, NULL); - tt_int_op(CALLED(directory_initiate_command_routerstatus), OP_EQ, 0); + tt_int_op(CALLED(directory_initiate_request), OP_EQ, 0);
directory_get_from_all_authorities(DIR_PURPOSE_FETCH_DETACHED_SIGNATURES, 0, NULL);
- tt_int_op(CALLED(directory_initiate_command_routerstatus), OP_EQ, 0); + tt_int_op(CALLED(directory_initiate_request), OP_EQ, 0);
done: - NS_UNMOCK(directory_initiate_command_routerstatus); + NS_UNMOCK(directory_initiate_request); clear_dir_servers(); routerlist_free_all(); crypto_pk_free(key); @@ -4589,7 +4579,7 @@ test_dir_should_not_init_request_to_dir_auths_without_v3_info(void *data) | MICRODESC_DIRINFO; (void) data;
- NS_MOCK(directory_initiate_command_routerstatus); + NS_MOCK(directory_initiate_request);
clear_dir_servers(); routerlist_free_all(); @@ -4600,14 +4590,14 @@ test_dir_should_not_init_request_to_dir_auths_without_v3_info(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, 0); + tt_int_op(CALLED(directory_initiate_request), OP_EQ, 0);
directory_get_from_all_authorities(DIR_PURPOSE_FETCH_DETACHED_SIGNATURES, 0, NULL); - tt_int_op(CALLED(directory_initiate_command_routerstatus), OP_EQ, 0); + tt_int_op(CALLED(directory_initiate_request), OP_EQ, 0);
done: - NS_UNMOCK(directory_initiate_command_routerstatus); + NS_UNMOCK(directory_initiate_request); clear_dir_servers(); routerlist_free_all(); } @@ -4636,35 +4626,12 @@ test_dir_should_init_request_to_dir_auths(void *data) tt_int_op(CALLED(directory_initiate_request), OP_EQ, 2);
done: - NS_UNMOCK(directory_initiate_command_routerstatus); + NS_UNMOCK(directory_initiate_request); clear_dir_servers(); routerlist_free_all(); }
void -NS(directory_initiate_command_routerstatus)(const routerstatus_t *status, - uint8_t dir_purpose, - uint8_t router_purpose, - dir_indirection_t indirection, - const char *resource, - const char *payload, - size_t payload_len, - time_t if_modified_since, - circuit_guard_state_t *guardstate) -{ - (void)status; - (void)dir_purpose; - (void)router_purpose; - (void)indirection; - (void)resource; - (void)payload; - (void)payload_len; - (void)if_modified_since; - (void)guardstate; - CALLED(directory_initiate_command_routerstatus)++; -} - -void NS(directory_initiate_request)(directory_request_t *req) { (void)req;