aboutsummaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorGeorge Kadianakis <desnacked@riseup.net>2017-08-05 00:33:34 +0300
committerNick Mathewson <nickm@torproject.org>2017-08-08 20:29:35 -0400
commit0bf8587858b927d1dcb39189442f55d8dabe50aa (patch)
treec06aedc07b074aded43249de7b90e116df528bea /src/or
parentfe0c40c9b344853963dc7af0f746d8c772bb3a97 (diff)
downloadtor-0bf8587858b927d1dcb39189442f55d8dabe50aa.tar.gz
tor-0bf8587858b927d1dcb39189442f55d8dabe50aa.zip
Do more type checking when setting HS idents.
I repurposed the old directory_request_set_hs_ident() into a new directory_request_upload_set_hs_ident() which is only used for the upload purpose and so it can assert on the dir_purpose. When coding the client-side we can make a second function for fetch.
Diffstat (limited to 'src/or')
-rw-r--r--src/or/directory.c7
-rw-r--r--src/or/directory.h4
-rw-r--r--src/or/hs_service.c2
3 files changed, 6 insertions, 7 deletions
diff --git a/src/or/directory.c b/src/or/directory.c
index fc83c013cb..e079a5941f 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -1281,12 +1281,11 @@ directory_request_set_rend_query(directory_request_t *req,
* <b>ident</b> object must outlive the request.
*/
void
-directory_request_set_hs_ident(directory_request_t *req,
- const hs_ident_dir_conn_t *ident)
+directory_request_upload_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->dir_purpose == DIR_PURPOSE_UPLOAD_HSDESC);
+ tor_assert(req->dir_purpose == DIR_PURPOSE_UPLOAD_HSDESC);
}
req->hs_ident = ident;
}
diff --git a/src/or/directory.h b/src/or/directory.h
index 6b3102bc33..d3f8a45a82 100644
--- a/src/or/directory.h
+++ b/src/or/directory.h
@@ -73,8 +73,8 @@ void directory_request_set_if_modified_since(directory_request_t *req,
time_t if_modified_since);
void directory_request_set_rend_query(directory_request_t *req,
const rend_data_t *query);
-void directory_request_set_hs_ident(directory_request_t *req,
- const hs_ident_dir_conn_t *ident);
+void directory_request_upload_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);
diff --git a/src/or/hs_service.c b/src/or/hs_service.c
index bea760837b..43528a4285 100644
--- a/src/or/hs_service.c
+++ b/src/or/hs_service.c
@@ -1957,7 +1957,7 @@ upload_descriptor_to_hsdir(const hs_service_t *service,
strlen(encoded_desc));
/* The ident object is copied over the directory connection object once
* the directory request is initiated. */
- directory_request_set_hs_ident(dir_req, &ident);
+ directory_request_upload_set_hs_ident(dir_req, &ident);
/* Initiate the directory request to the hsdir.*/
directory_initiate_request(dir_req);