Browse Source

r14357@31-33-219: nickm | 2008-02-21 10:39:11 -0500
Fix bug-handling code for unhandled write errors, so that it does not try to flush any data on the failed connection. Bugfix on 0.1.2.x.


svn:r13655

Nick Mathewson 17 years ago
parent
commit
e18ee2a2ab
2 changed files with 4 additions and 4 deletions
  1. 3 0
      ChangeLog
  2. 1 4
      src/or/main.c

+ 3 - 0
ChangeLog

@@ -69,6 +69,9 @@ Changes in version 0.2.0.20-?? - 2008-02-??
       so it doesn't return failure when any authority disappears.
     - Even though the man page said that "TrackHostExits ." should
       work, nobody had ever implemented it. Bugfix on 0.1.0.x.
+    - Alter the code that tries to recover from unhandled write
+      errors, to not try to flush onto a socket that's given us
+      unhandled errors.  Bugfix on 0.1.2.x.
 
   o Code simplifications and refactoring:
     - Remove the tor_strpartition function: its logic was confused,

+ 1 - 4
src/or/main.c

@@ -500,10 +500,7 @@ conn_write_callback(int fd, short events, void *_conn)
           edge_conn->end_reason = END_STREAM_REASON_INTERNAL;
         conn->edge_has_sent_end = 1;
       }
-      /* XXX020rc do we need a close-immediate here, so we don't try to
-       * flush? -NM
-       * Yes, we do, since it broke in an unexpected way. This should be
-       * safe to do since I don't think this codepath ever gets called. -RD */
+      connection_close_immediate(conn); /* So we don't try to flush. */
       connection_mark_for_close(conn);
     }
   }