[tor-commits] [tor/master] Don't warn about not sending a socks reply if we get a write error

nickm at torproject.org nickm at torproject.org
Tue Apr 2 14:40:00 UTC 2013


commit 16f2e4aa8ce76387c19687dd0c78c97929a852d6
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Mar 12 17:36:09 2013 -0400

    Don't warn about not sending a socks reply if we get a write error
    
    If we get a write error on a SOCKS connection, we can't send a
    SOCKS reply, now can we?
    
    This bug has been here since 36baf7219, where we added the "hey, I'm
    closing an AP connection but I haven't finished the socks
    handshake!" message.  It's bug 8427.
---
 changes/bug8427     |    5 +++++
 src/or/connection.c |    4 ++++
 2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/changes/bug8427 b/changes/bug8427
new file mode 100644
index 0000000..22b003f
--- /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 eac9c4f..75c1656 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -3286,6 +3286,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);





More information about the tor-commits mailing list