aboutsummaryrefslogtreecommitdiff
path: root/src/or/connection_or.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2004-05-05 01:26:57 +0000
committerNick Mathewson <nickm@torproject.org>2004-05-05 01:26:57 +0000
commit2ba0776b027db8fa619b61fb074bf2400ac18728 (patch)
tree2f217a760e380760ac2f6efd1f4b5a0c35327a92 /src/or/connection_or.c
parentd49d3dcc7bc19e9b9fb2aa29f7d94379a8aedf52 (diff)
downloadtor-2ba0776b027db8fa619b61fb074bf2400ac18728.tar
tor-2ba0776b027db8fa619b61fb074bf2400ac18728.tar.gz
Only connection_add connections once they have conn->s sett; refactor code around this. Should make stuff more bulletproof.
svn:r1788
Diffstat (limited to 'src/or/connection_or.c')
-rw-r--r--src/or/connection_or.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/or/connection_or.c b/src/or/connection_or.c
index 02ee368a0..133caca47 100644
--- a/src/or/connection_or.c
+++ b/src/or/connection_or.c
@@ -111,17 +111,11 @@ connection_t *connection_or_connect(routerinfo_t *router) {
connection_or_init_conn_from_router(conn, router);
conn->state = OR_CONN_STATE_CONNECTING;
- if(connection_add(conn) < 0) { /* no space, forget it */
- connection_free(conn);
- return NULL;
- }
-
switch(connection_connect(conn, router->address, router->addr, router->or_port)) {
case -1:
- connection_mark_for_close(conn, 0);
+ connection_free(conn);
return NULL;
case 0:
- connection_set_poll_socket(conn);
connection_watch_events(conn, POLLIN | POLLOUT | POLLERR);
/* writable indicates finish, readable indicates broken link,
error indicates broken link on windows */
@@ -129,8 +123,6 @@ connection_t *connection_or_connect(routerinfo_t *router) {
/* case 1: fall through */
}
- connection_set_poll_socket(conn);
-
if(connection_tls_start_handshake(conn, 0) >= 0)
return conn;