summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug84275
-rw-r--r--src/or/connection.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/changes/bug8427 b/changes/bug8427
new file mode 100644
index 0000000000..22b003fc38
--- /dev/null
+++ b/changes/bug8427
@@ -0,0 +1,5 @@
+ o Minor bugfixes:
+ - If we encounter a write failure on a SOCKS connection before we
+ finish our SOCKS handshake, don't warn that we closed the
+ connection before we could send a SOCKS reply. Fixes bug 8427;
+ bugfix on 0.1.0.1-rc.
diff --git a/src/or/connection.c b/src/or/connection.c
index 622eadcff9..2cc3d7486b 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -3439,6 +3439,10 @@ connection_handle_write_impl(connection_t *conn, int force)
if (result < 0) {
if (CONN_IS_EDGE(conn))
connection_edge_end_errno(TO_EDGE_CONN(conn));
+ if (conn->type == CONN_TYPE_AP) {
+ /* writing failed; we couldn't send a SOCKS reply if we wanted to */
+ TO_ENTRY_CONN(conn)->socks_request->has_finished = 1;
+ }
connection_close_immediate(conn); /* Don't flush; connection is dead. */
connection_mark_for_close(conn);