diff --git a/ChangeLog b/ChangeLog index c78300f640..c394661c28 100644 --- a/ChangeLog +++ b/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, 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); } }