diff options
author | George Kadianakis <desnacked@riseup.net> | 2017-08-05 00:33:34 +0300 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-08-08 20:29:35 -0400 |
commit | 0bf8587858b927d1dcb39189442f55d8dabe50aa (patch) | |
tree | c06aedc07b074aded43249de7b90e116df528bea /src | |
parent | fe0c40c9b344853963dc7af0f746d8c772bb3a97 (diff) | |
download | tor-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')
-rw-r--r-- | src/or/directory.c | 7 | ||||
-rw-r--r-- | src/or/directory.h | 4 | ||||
-rw-r--r-- | src/or/hs_service.c | 2 |
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); |