summaryrefslogtreecommitdiff
path: root/src/or/main.c
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2004-04-09 09:39:42 +0000
committerRoger Dingledine <arma@torproject.org>2004-04-09 09:39:42 +0000
commit4011906b6b82e237777fc10a3598d9d52c9039cc (patch)
tree7236419178c0b4de4f096c4775c057ad89be5ab7 /src/or/main.c
parent9b436c7f7a9a10bdae78614cb808cebb980a4f0f (diff)
downloadtor-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.c17
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 */
}