Browse Source

In connection_ap_handshake_process_socks(), mark the socks request as finished if a reply is send after a parse error

Silences the log message:
[warn] {BUG} _connection_mark_unattached_ap(): Bug: stream (marked at connection_edge.c:2224) sending two socks replies?
after the client triggered the "Tor is not an HTTP Proxy" response.

No additional socks reply was sent, though.
Fabian Keil 14 years ago
parent
commit
2888644a9f
1 changed files with 5 additions and 0 deletions
  1. 5 0
      src/or/connection_edge.c

+ 5 - 0
src/or/connection_edge.c

@@ -2319,6 +2319,11 @@ connection_ap_handshake_process_socks(entry_connection_t *conn)
     connection_write_to_buf((const char*)socks->reply, socks->replylen,
                             base_conn);
     socks->replylen = 0;
+    if (sockshere == -1) {
+      /* An invalid request just got a reply, no additional
+       * one is necessary. */
+      socks->has_finished = 1;
+    }
   }
 
   if (sockshere == 0) {