From: Roger Dingledine Date: Wed, 7 Apr 2004 23:31:29 +0000 (+0000) Subject: clean up choose_good_exit_server() X-Git-Tag: tor-0.0.6incompat-merged~102 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6cf584b76543de8e53b0ed5296c1fdadb2a50a8d;p=thirdparty%2Ftor.git clean up choose_good_exit_server() svn:r1542 --- diff --git a/src/or/onion.c b/src/or/onion.c index 926cee6327..c8b0f5c6c3 100644 --- a/src/or/onion.c +++ b/src/or/onion.c @@ -335,19 +335,21 @@ static routerinfo_t *choose_good_exit_server_general(routerlist_t *dir) static routerinfo_t *choose_good_exit_server(uint8_t purpose, routerlist_t *dir) { - if(purpose == CIRCUIT_PURPOSE_C_GENERAL) - return choose_good_exit_server_general(dir); - else if (purpose == CIRCUIT_PURPOSE_C_ESTABLISH_REND || - purpose == CIRCUIT_PURPOSE_C_REND_JOINED) { - smartlist_t *obsolete_routers; - routerinfo_t *r; - obsolete_routers = smartlist_create(); - router_add_nonrendezvous_to_list(obsolete_routers); - r = router_choose_random_node(dir, options.RendNodes, options.RendExcludeNodes, obsolete_routers); - smartlist_free(obsolete_routers); - return r; - } else - return router_choose_random_node(dir, options.RendNodes, options.RendExcludeNodes, NULL); + smartlist_t *obsolete_routers; + routerinfo_t *r; + switch(purpose) { + case CIRCUIT_PURPOSE_C_GENERAL: + return choose_good_exit_server_general(dir); + case CIRCUIT_PURPOSE_C_ESTABLISH_REND: + obsolete_routers = smartlist_create(); + router_add_nonrendezvous_to_list(obsolete_routers); + r = router_choose_random_node(dir, options.RendNodes, options.RendExcludeNodes, obsolete_routers); + smartlist_free(obsolete_routers); + return r; + default: + log_fn(LOG_WARN,"unhandled purpose %d", purpose); + assert(0); + } } cpath_build_state_t *onion_new_cpath_build_state(uint8_t purpose,