]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
declare the epipe bug a non-bug.
authorRoger Dingledine <arma@torproject.org>
Tue, 1 Jun 2004 17:31:13 +0000 (17:31 +0000)
committerRoger Dingledine <arma@torproject.org>
Tue, 1 Jun 2004 17:31:13 +0000 (17:31 +0000)
now we catch and ignore epipe signals, and when write returns epipe,
we simply return -1 and close the socket/connection.

svn:r1928

src/or/buffers.c
src/or/main.c

index a67f47bee562329ae1ec789f8b6c04d8742b84de..13824a20a71c8b58c5b89cba7150811ae5095aea 100644 (file)
@@ -250,8 +250,6 @@ int flush_buf(int s, buf_t *buf, int *buf_flushlen)
   write_result = send(s, buf->mem, *buf_flushlen, 0);
   if (write_result < 0) {
     if(!ERRNO_IS_EAGAIN(tor_socket_errno(s))) { /* it's a real error */
-      /* get a stack trace to find epipe bugs */
-      tor_assert(tor_socket_errno(s) != EPIPE);
       return -1;
     }
     log_fn(LOG_DEBUG,"write() would block, returning.");
index 1a75158bf4d130f49092efe25622ce5786eb3c4a..f6709cd2f39ddaaab08606e907f0e3e676f76759 100644 (file)
@@ -347,8 +347,6 @@ static void run_connection_housekeeping(int i, time_t now) {
      !conn->marked_for_close &&
      conn->timestamp_lastwritten + 5*60 < now) {
     log_fn(LOG_WARN,"Expiring wedged directory conn (fd %d, purpose %d)", conn->s, conn->purpose);
-    /* XXXX This next check may help isolate where the pesky EPIPE bug
-     * really occurs. */
     if (connection_wants_to_flush(conn)) {
       if(flush_buf(conn->s, conn->outbuf, &conn->outbuf_flushlen) < 0) {
         log_fn(LOG_WARN,"flushing expired directory conn failed.");
@@ -752,7 +750,7 @@ static void catch(int the_signal) {
         unlink(options.PidFile);
       exit(0);
     case SIGPIPE:
-      log(LOG_WARN,"Bug: caught sigpipe. Ignoring.");
+      log(LOG_INFO,"Caught sigpipe. Ignoring.");
       break;
     case SIGHUP:
       please_reset = 1;