From 121d029584d5f500b0d9d2c808c28645cf4937f5 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Mon, 14 Oct 2002 06:44:48 +0000 Subject: [PATCH] fix subtle race condition If you weren't connected to a given router, and you made a directory request to it simultaneously with a new web query that caused you to want to connect to that OR... it would think you're already connected. svn:r135 --- src/or/directory.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/or/directory.c b/src/or/directory.c index fb87be00a4..11bd901814 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -37,7 +37,8 @@ void directory_initiate_fetch(routerinfo_t *router) { return; /* set up conn so it's got all the data we need to remember */ - conn->addr = router->addr, conn->port = router->or_port; /* NOTE we store or_port here always */ + conn->addr = router->addr; + conn->port = router->dir_port; conn->address = strdup(router->address); conn->receiver_bucket = -1; /* edge connections don't do receiver buckets */ conn->bandwidth = -1; @@ -279,7 +280,7 @@ int connection_dir_create_listener(struct sockaddr_in *bindaddr) { } int connection_dir_handle_listener_read(connection_t *conn) { - log(LOG_NOTICE,"Dir: Received a connection request. Waiting for command."); + log(LOG_INFO,"Dir: Received a connection request. Waiting for command."); return connection_handle_listener_read(conn, CONN_TYPE_DIR, DIR_CONN_STATE_COMMAND_WAIT); }