From ff54050fdae61db76c1d1d35d8521f276fe9b684 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Sat, 13 Aug 2005 02:20:00 +0000 Subject: [PATCH] let unregistered-servers take a parameter (the min bandwidth) nick, is this an ugly hack of your protocol? svn:r4775 --- src/or/control.c | 5 +++-- src/or/dirserv.c | 5 +++-- src/or/or.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/or/control.c b/src/or/control.c index 372b895754..bd8c591aca 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -1173,8 +1173,9 @@ handle_getinfo_helper(const char *question, char **answer) routerinfo_t *ri = router_get_by_nickname(question+strlen("desc/name/")); if (ri && ri->signed_descriptor) *answer = tor_strdup(ri->signed_descriptor); - } else if (!strcmp(question, "unregistered-servers")) { - *answer = dirserver_getinfo_unregistered(); + } else if (!strcmpstart(question, "unregistered-servers-")) { + *answer = dirserver_getinfo_unregistered(question + + strlen("unregistered-servers-")); } else if (!strcmp(question, "network-status")) { routerlist_t *routerlist; router_get_routerlist(&routerlist); diff --git a/src/or/dirserv.c b/src/or/dirserv.c index d5dc08d455..a237fbf096 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -447,13 +447,14 @@ directory_remove_invalid(void) * fast nodes that haven't registered. */ char * -dirserver_getinfo_unregistered(void) +dirserver_getinfo_unregistered(const char *question) { int i, r; smartlist_t *answerlist; char buf[1024]; char *answer; routerinfo_t *ent; + int min_bw = atoi(question); if (!descriptor_list) return tor_strdup(""); @@ -462,7 +463,7 @@ dirserver_getinfo_unregistered(void) for (i = 0; i < smartlist_len(descriptor_list); ++i) { ent = smartlist_get(descriptor_list, i); r = dirserv_router_fingerprint_is_known(ent); - if (ent->bandwidthcapacity > 100000 && r == 0) { + if (ent->bandwidthcapacity >= min_bw && r == 0) { /* then log this one */ tor_snprintf(buf, sizeof(buf), "%s: BW %d on '%s'.", diff --git a/src/or/or.h b/src/or/or.h index d7ef8d275b..0e10fe4ff2 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -1621,7 +1621,7 @@ int dirserv_router_fingerprint_is_known(const routerinfo_t *router); void dirserv_free_fingerprint_list(void); const char *dirserv_get_nickname_by_digest(const char *digest); int dirserv_add_descriptor(const char **desc, const char **msg); -char *dirserver_getinfo_unregistered(void); +char *dirserver_getinfo_unregistered(const char *question); int dirserv_load_from_directory_string(const char *dir); void dirserv_free_descriptors(void); int list_server_status(smartlist_t *routers, char **router_status_out);