diff options
author | Roger Dingledine <arma@torproject.org> | 2004-04-09 09:39:42 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2004-04-09 09:39:42 +0000 |
commit | 4011906b6b82e237777fc10a3598d9d52c9039cc (patch) | |
tree | 7236419178c0b4de4f096c4775c057ad89be5ab7 /src/or/main.c | |
parent | 9b436c7f7a9a10bdae78614cb808cebb980a4f0f (diff) | |
download | tor-4011906b6b82e237777fc10a3598d9d52c9039cc.tar.gz tor-4011906b6b82e237777fc10a3598d9d52c9039cc.zip |
get more serious about hunting The Bug
(it has been haunting us since the days of 0.0.2preX)
svn:r1576
Diffstat (limited to 'src/or/main.c')
-rw-r--r-- | src/or/main.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/or/main.c b/src/or/main.c index 6262abce34..a73f047c7c 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -181,13 +181,14 @@ static void conn_read(int i) { log_fn(LOG_DEBUG,"socket %d wants to read.",conn->s); assert_connection_ok(conn, time(NULL)); + assert_all_pending_dns_resolves_ok(); if( - /* XXX does POLLHUP also mean it's definitely broken? */ + /* XXX does POLLHUP also mean it's definitely broken? */ #ifdef MS_WINDOWS - (poll_array[i].revents & POLLERR) || + (poll_array[i].revents & POLLERR) || #endif - connection_handle_read(conn) < 0) { + connection_handle_read(conn) < 0) { if (!conn->marked_for_close) { /* this connection is broken. remove it */ /* XXX This shouldn't ever happen anymore. */ @@ -196,8 +197,9 @@ static void conn_read(int i) { CONN_TYPE_TO_STRING(conn->type), conn->s); connection_mark_for_close(conn,0); } - } - assert_connection_ok(conn, time(NULL)); + } + assert_connection_ok(conn, time(NULL)); + assert_all_pending_dns_resolves_ok(); } static void conn_write(int i) { @@ -212,6 +214,7 @@ static void conn_write(int i) { return; assert_connection_ok(conn, time(NULL)); + assert_all_pending_dns_resolves_ok(); if (connection_handle_write(conn) < 0) { if (!conn->marked_for_close) { @@ -223,6 +226,7 @@ static void conn_write(int i) { } } assert_connection_ok(conn, time(NULL)); + assert_all_pending_dns_resolves_ok(); } static void conn_close_if_marked(int i) { @@ -231,6 +235,7 @@ static void conn_close_if_marked(int i) { conn = connection_array[i]; assert_connection_ok(conn, time(NULL)); + assert_all_pending_dns_resolves_ok(); if(!conn->marked_for_close) return; /* nothing to see here, move along */ @@ -446,7 +451,9 @@ static int prepare_for_poll(void) { if(now.tv_sec > current_second) { /* the second has rolled over. check more stuff. */ ++stats_n_seconds_reading; + assert_all_pending_dns_resolves_ok(); run_scheduled_events(now.tv_sec); + assert_all_pending_dns_resolves_ok(); current_second = now.tv_sec; /* remember which second it is, for next time */ } |