]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
prop224: Add directory_request_fetch_set_hs_ident()
authorDavid Goulet <dgoulet@torproject.org>
Wed, 9 Aug 2017 15:45:29 +0000 (11:45 -0400)
committerDavid Goulet <dgoulet@torproject.org>
Thu, 24 Aug 2017 17:03:28 +0000 (13:03 -0400)
Needed by the client when fetching a descriptor. This function checks the
directory purpose and hard assert if it is not for fetching.

Signed-off-by: David Goulet <dgoulet@torproject.org>
src/or/directory.c
src/or/directory.h
src/or/hs_client.c

index f3e76be62ff2b0803de16798ce07a019aac1bb78..57dfdd9cacc279b7952dcf804e0ed02a520f283b 100644 (file)
@@ -1292,6 +1292,20 @@ directory_request_upload_set_hs_ident(directory_request_t *req,
   }
   req->hs_ident = ident;
 }
+/**
+ * Set an object containing HS connection identifier to be associated with
+ * this fetch request. Note that only an alias to <b>ident</b> is stored, so
+ * the <b>ident</b> object must outlive the request.
+ */
+void
+directory_request_fetch_set_hs_ident(directory_request_t *req,
+                                     const hs_ident_dir_conn_t *ident)
+{
+  if (ident) {
+    tor_assert(req->dir_purpose == DIR_PURPOSE_FETCH_HSDESC);
+  }
+  req->hs_ident = ident;
+}
 /** Set a static circuit_guard_state_t object to affliate with the request in
  * <b>req</b>.  This object will receive notification when the attempt to
  * connect to the guard either succeeds or fails. */
index 1acdff34600db68bea9861de9b81a696e09e6287..fc71bf800b05553d166b700cc334815c9cd91620 100644 (file)
@@ -75,6 +75,8 @@ void directory_request_set_rend_query(directory_request_t *req,
                                       const rend_data_t *query);
 void directory_request_upload_set_hs_ident(directory_request_t *req,
                                            const hs_ident_dir_conn_t *ident);
+void directory_request_fetch_set_hs_ident(directory_request_t *req,
+                                          const hs_ident_dir_conn_t *ident);
 
 void directory_request_set_routerstatus(directory_request_t *req,
                                         const routerstatus_t *rs);
index e7e3eb72aeb3e940c4e67f1bfc4e535e67d1348d..77348f23e21446617cb7b5d98396e35bce789592 100644 (file)
@@ -102,7 +102,7 @@ directory_launch_v3_desc_fetch(const ed25519_public_key_t *onion_identity_pk,
   directory_request_set_routerstatus(req, hsdir);
   directory_request_set_indirection(req, DIRIND_ANONYMOUS);
   directory_request_set_resource(req, base64_blinded_pubkey);
-  directory_request_upload_set_hs_ident(req, &hs_conn_dir_ident);
+  directory_request_fetch_set_hs_ident(req, &hs_conn_dir_ident);
   directory_initiate_request(req);
   directory_request_free(req);