diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/or/or.h | 6 | ||||
-rw-r--r-- | src/or/routerlist.c | 13 | ||||
-rw-r--r-- | src/or/routerparse.c | 8 |
3 files changed, 15 insertions, 12 deletions
diff --git a/src/or/or.h b/src/or/or.h index 995b5e5a7..f2bd9a17c 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -1400,9 +1400,9 @@ int router_exit_policy_rejects_all(routerinfo_t *router); void running_routers_free(running_routers_t *rr); void routerlist_update_from_runningrouters(routerlist_t *list, running_routers_t *rr); -void router_update_status_from_smartlist(routerinfo_t *r, - time_t list_time, - smartlist_t *running_list); +int router_update_status_from_smartlist(routerinfo_t *r, + time_t list_time, + smartlist_t *running_list); /********************************* routerparse.c ************************/ diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 798353b5e..1b53c4a36 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -825,10 +825,12 @@ void routerlist_update_from_runningrouters(routerlist_t *list, * <li> $<b>hexdigest</b> -- router is running and unverified. * <li> !$<b>hexdigest</b> -- router is not-running and unverified. * </ol> + * + * Return 1 if we found router in running_list, else return 0. */ -void router_update_status_from_smartlist(routerinfo_t *router, - time_t list_time, - smartlist_t *running_list) +int router_update_status_from_smartlist(routerinfo_t *router, + time_t list_time, + smartlist_t *running_list) { int n_names, i, running, approved; const char *name; @@ -863,7 +865,7 @@ void router_update_status_from_smartlist(routerinfo_t *router, router->is_running = 1; } router->is_verified = (name[0] != '$'); - return; + return 1; } } else { /* *name == '!' */ name++; @@ -873,10 +875,11 @@ void router_update_status_from_smartlist(routerinfo_t *router, router->is_running = 0; } router->is_verified = (name[0] != '$'); - return; + return 1; } } } + return 0; } /* diff --git a/src/or/routerparse.c b/src/or/routerparse.c index 01641625b..ace10b24e 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -393,7 +393,7 @@ router_parse_routerlist_from_directory(const char *str, for (i=0; i<tok->n_args; ++i) { smartlist_add(good_nickname_list, tok->args[i]); } - tok->n_args = 0; /* Don't free the strings in good_nickname_lst yet. */ + tok->n_args = 0; /* Don't free the strings in good_nickname_list yet. */ /* Read the router list from s, advancing s up past the end of the last * router. */ @@ -416,9 +416,9 @@ router_parse_routerlist_from_directory(const char *str, static int have_warned_about_unverified_status = 0; routerinfo_t *me = router_get_my_routerinfo(); if(me) { - router_update_status_from_smartlist(me, published_on, - good_nickname_list); - if(me->is_verified == 0 && !have_warned_about_unverified_status) { + if(router_update_status_from_smartlist(me, published_on, + good_nickname_list)==1 && + me->is_verified == 0 && !have_warned_about_unverified_status) { log_fn(LOG_WARN,"Dirserver %s lists your server as unverified. Please consider sending your identity fingerprint to the tor-ops.", dirnickname); have_warned_about_unverified_status = 1; } |