diff options
author | Roger Dingledine <arma@torproject.org> | 2004-07-12 18:19:55 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2004-07-12 18:19:55 +0000 |
commit | 538655cd806b46519512e10ef097790afa1b36b9 (patch) | |
tree | 88af9770af63d84e3d630334f764d0e828342662 | |
parent | e167eeb18e344830d5bd0fc6b70720ac41721109 (diff) | |
download | tor-538655cd806b46519512e10ef097790afa1b36b9.tar tor-538655cd806b46519512e10ef097790afa1b36b9.tar.gz |
if connecting to an OR fails immediately, mark it as down
svn:r2029
-rw-r--r-- | src/or/connection.c | 4 | ||||
-rw-r--r-- | src/or/connection_or.c | 1 | ||||
-rw-r--r-- | src/or/routerlist.c | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/or/connection.c b/src/or/connection.c index 90c8197c4..578466bae 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -829,7 +829,9 @@ int connection_handle_write(connection_t *conn) { log_fn(LOG_DEBUG,"in-progress connect failed. Removing."); connection_close_immediate(conn); connection_mark_for_close(conn); - /* Previously we tested conn->nickname; is this right? */ + /* it's safe to pass OPs to router_mark_as_down(), since it just + * ignores unrecognized routers + */ if (conn->type == CONN_TYPE_OR) router_mark_as_down(conn->identity_digest); return -1; diff --git a/src/or/connection_or.c b/src/or/connection_or.c index 667a82d92..87e2f9df2 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -177,6 +177,7 @@ connection_t *connection_or_connect(uint32_t addr, uint16_t port, switch(connection_connect(conn, conn->address, addr, port)) { case -1: + router_mark_as_down(conn->identity_digest); connection_free(conn); return NULL; case 0: diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 1bd21e441..7874b1075 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -354,7 +354,7 @@ void routerlist_free(routerlist_t *rl) tor_free(rl); } -/** Mark the router named <b>nickname</b> as non-running in our routerlist. */ +/** Mark the router with ID <b>digest</b> as non-running in our routerlist. */ void router_mark_as_down(const char *digest) { routerinfo_t *router; tor_assert(digest); |