diff options
author | Nick Mathewson <nickm@torproject.org> | 2008-02-21 15:39:26 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2008-02-21 15:39:26 +0000 |
commit | e18ee2a2abc9ee5dca56e1744babfb7d5733d32d (patch) | |
tree | d729006de05a43df82a5d950ce173b161aeb8d3d | |
parent | 41eca067a1123772b1b9cb57534be788fc0e2f89 (diff) | |
download | tor-e18ee2a2abc9ee5dca56e1744babfb7d5733d32d.tar.gz tor-e18ee2a2abc9ee5dca56e1744babfb7d5733d32d.zip |
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
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | src/or/main.c | 5 |
2 files changed, 4 insertions, 4 deletions
@@ -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, diff --git a/src/or/main.c b/src/or/main.c index 313c33f06a..7b8448ea1d 100644 --- a/src/or/main.c +++ b/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); } } |