[tor-commits] [tor/master] Have directory_get_from_all_authorities use requests.

nickm at torproject.org nickm at torproject.org
Thu Apr 27 14:12:35 UTC 2017


commit c300fd7e65b699c3d2704737cd0c73276ca0a346
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Apr 21 14:31:35 2017 -0400

    Have directory_get_from_all_authorities use requests.
---
 src/or/directory.c  | 16 +++++++++-------
 src/or/directory.h  |  2 +-
 src/test/test_dir.c | 15 ++++++++++++---
 3 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/src/or/directory.c b/src/or/directory.c
index ea3683d..1996e56 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -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) {
diff --git a/src/or/directory.h b/src/or/directory.h
index 5d27767..56bbfe4 100644
--- a/src/or/directory.h
+++ b/src/or/directory.h
@@ -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);
diff --git a/src/test/test_dir.c b/src/test/test_dir.c
index e0c92a7..048b714 100644
--- a/src/test/test_dir.c
+++ b/src/test/test_dir.c
@@ -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)
 {





More information about the tor-commits mailing list