summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2006-04-01 22:00:49 +0000
committerRoger Dingledine <arma@torproject.org>2006-04-01 22:00:49 +0000
commit6fb27741ba2c02ca94804ef763647c8966886434 (patch)
treec5fba2160212d572295127ee5ef6e911ae641a86 /src
parente754664d620bf5aad76aa713b53299560497ac91 (diff)
downloadtor-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.c7
-rw-r--r--src/or/directory.c5
-rw-r--r--src/or/dirserv.c10
-rw-r--r--src/or/or.h2
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,