aboutsummaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2004-04-07 23:31:29 +0000
committerRoger Dingledine <arma@torproject.org>2004-04-07 23:31:29 +0000
commit6cf584b76543de8e53b0ed5296c1fdadb2a50a8d (patch)
tree994eddd6a13554cfed49348d8817ca9ee5076f7a /src/or
parent63cde972531495fd65cd778f831aad73723b94de (diff)
downloadtor-6cf584b76543de8e53b0ed5296c1fdadb2a50a8d.tar
tor-6cf584b76543de8e53b0ed5296c1fdadb2a50a8d.tar.gz
clean up choose_good_exit_server()
svn:r1542
Diffstat (limited to 'src/or')
-rw-r--r--src/or/onion.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/or/onion.c b/src/or/onion.c
index 926cee632..c8b0f5c6c 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,