diff options
author | Roger Dingledine <arma@torproject.org> | 2006-04-01 22:00:49 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2006-04-01 22:00:49 +0000 |
commit | 6fb27741ba2c02ca94804ef763647c8966886434 (patch) | |
tree | c5fba2160212d572295127ee5ef6e911ae641a86 /src | |
parent | e754664d620bf5aad76aa713b53299560497ac91 (diff) | |
download | tor-6fb27741ba2c02ca94804ef763647c8966886434.tar.gz tor-6fb27741ba2c02ca94804ef763647c8966886434.zip |
Fix dirserv_get_networkstatus_v2's api: its function comments
did not at all match its behavior, and I can't think of a case
when it should return anything other than 0.
This fix may allow getinfo dir/status/foo to work.
svn:r6285
Diffstat (limited to 'src')
-rw-r--r-- | src/or/control.c | 7 | ||||
-rw-r--r-- | src/or/directory.c | 5 | ||||
-rw-r--r-- | src/or/dirserv.c | 10 | ||||
-rw-r--r-- | src/or/or.h | 2 |
4 files changed, 7 insertions, 17 deletions
diff --git a/src/or/control.c b/src/or/control.c index 6357ce9eaf..c8fd631a77 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -1509,11 +1509,8 @@ handle_getinfo_helper(const char *question, char **answer) if (!get_options()->DirPort) return 0; status_list = smartlist_create(); - if (!dirserv_get_networkstatus_v2(status_list, - question+strlen("dir/status/"))) { - smartlist_free(status_list); - return 0; - } + dirserv_get_networkstatus_v2(status_list, + question+strlen("dir/status/")); len = 0; SMARTLIST_FOREACH(status_list, cached_dir_t *, d, len += d->dir_len); cp = *answer = tor_malloc(len+1); diff --git a/src/or/directory.c b/src/or/directory.c index f54cdb86a5..88ff50099c 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -1430,10 +1430,7 @@ directory_handle_command_get(connection_t *conn, char *headers, const char *key = url + strlen("/tor/status/"); if (deflated) url[url_len-2] = '\0'; - if (dirserv_get_networkstatus_v2(dir_objs, key)) { - smartlist_free(dir_objs); - return 0; - } + dirserv_get_networkstatus_v2(dir_objs, key); if (!strcmpstart(key, "fp/")) request_type = deflated?"/tor/status/fp.z":"/tor/status/fp"; else if (!strcmpstart(key, "authority")) diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 432b4364e6..23118a749a 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -1454,12 +1454,9 @@ generate_v2_networkstatus(void) /** Look for a network status object as specified by <b>key</b>, which should * be either "authority" (to find a network status generated by us), a hex * identity digest (to find a network status generated by given directory), or - * "all" (to return all the v2 network status objects we have, concatenated). - * If <b>compress</b>, find the version compressed with zlib. Return 0 if - * nothing was found; otherwise set *<b>directory</b> to the matching network - * status and return its length. + * "all" (to return all the v2 network status objects we have). */ -int +void dirserv_get_networkstatus_v2(smartlist_t *result, const char *key) { @@ -1468,7 +1465,7 @@ dirserv_get_networkstatus_v2(smartlist_t *result, if (!cached_v2_networkstatus) cached_v2_networkstatus = digestmap_new(); - if (!(strcmp(key,"authority"))) { + if (!strcmp(key,"authority")) { if (get_options()->AuthoritativeDir) { cached_dir_t *d = dirserv_pick_cached_dir_obj(NULL, @@ -1518,7 +1515,6 @@ dirserv_get_networkstatus_v2(smartlist_t *result, }); smartlist_free(digests); } - return 0; } /** Add a signed_descriptor_t to <b>descs_out</b> for each router matching diff --git a/src/or/or.h b/src/or/or.h index 1e97bdf9ed..b466762f5c 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -1924,7 +1924,7 @@ void dirserv_set_cached_directory(const char *directory, time_t when, void dirserv_set_cached_networkstatus_v2(const char *directory, const char *identity, time_t published); -int dirserv_get_networkstatus_v2(smartlist_t *result, const char *key); +void dirserv_get_networkstatus_v2(smartlist_t *result, const char *key); int dirserv_get_routerdescs(smartlist_t *descs_out, const char *key, const char **msg); void dirserv_orconn_tls_done(const char *address, |