]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
must close marked connections at the end of run_scheduled_events.
authorRoger Dingledine <arma@torproject.org>
Wed, 5 May 2004 00:59:42 +0000 (00:59 +0000)
committerRoger Dingledine <arma@torproject.org>
Wed, 5 May 2004 00:59:42 +0000 (00:59 +0000)
otherwise they might have a socket -1, and if we leave them around
they'll muck up poll/select.

i think this was the cause of our win32 and os x fakepoll crashes,
and probably would cause other errors down the road.

svn:r1786

src/or/main.c

index cc3789e85cdec1a1fc06ec6ee7b764d54dc09f34..122af87bb9f905a07fdd59ebc99be8d8b34be9ac 100644 (file)
@@ -445,16 +445,12 @@ static void run_scheduled_events(time_t now) {
     last_uploaded_services = now;
   }
 
-#if 0
-  /* 6. and blow away any connections that need to die. can't do this later
-   * because we might open up a circuit and not realize we're about to cull
-   * the connection it's running over.
-   * XXX we can remove this step once we audit circuit-building to make sure
-   *     it doesn't pick a marked-for-close conn. -RD
+  /* 6. and blow away any connections that need to die. have to do this now,
+   * because if we marked a conn for close and left its socket -1, then
+   * we'll pass it to poll/select and bad things will happen.
    */
   for(i=0;i<nfds;i++)
     conn_close_if_marked(i);
-#endif
 }
 
 static int prepare_for_poll(void) {