aboutsummaryrefslogtreecommitdiff
path: root/src/or/dirserv.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2005-09-08 21:01:24 +0000
committerNick Mathewson <nickm@torproject.org>2005-09-08 21:01:24 +0000
commit4528bbfd9f68eb7537f0b130336ef6023a6270ce (patch)
treea664eb8f5c7ff768245ab83b8167e1cf10852388 /src/or/dirserv.c
parentc523e106b54bab147014bccb56207c0c6d31d5de (diff)
downloadtor-4528bbfd9f68eb7537f0b130336ef6023a6270ce.tar
tor-4528bbfd9f68eb7537f0b130336ef6023a6270ce.tar.gz
Resolve some XXXs. Add some others.
svn:r4947
Diffstat (limited to 'src/or/dirserv.c')
-rw-r--r--src/or/dirserv.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 81777d02f..28fc19317 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -1238,14 +1238,16 @@ dirserv_get_routerdescs(smartlist_t *descs_out, const char *key)
smartlist_add(digests, d);
});
smartlist_free(hexdigests);
- /* XXXX should always return own descriptor. or special-case it. or
- * something. */
- SMARTLIST_FOREACH(complete_list, routerinfo_t *, ri,
- SMARTLIST_FOREACH(digests, const char *, d,
- if (!memcmp(d,ri->identity_digest,DIGEST_LEN)) {
- smartlist_add(descs_out,ri);
- break;
- }));
+ SMARTLIST_FOREACH(digests, const char *, d,
+ {
+ if (router_digest_is_me(d)) {
+ smartlist_add(descs_out, router_get_my_routerinfo());
+ } else {
+ routerinfo_t *ri = router_get_by_digest(d);
+ if (d)
+ smartlist_add(descs_out,ri);
+ }
+ });
SMARTLIST_FOREACH(digests, char *, d, tor_free(d));
smartlist_free(digests);
}