Browse Source

Patch from rovv: send back END cell in response to connect attempts to nonexistent hidden service port.

svn:r17137
Nick Mathewson 17 years ago
parent
commit
b593fd5c20
2 changed files with 4 additions and 1 deletions
  1. 3 0
      ChangeLog
  2. 1 1
      src/or/connection_edge.c

+ 3 - 0
ChangeLog

@@ -28,6 +28,9 @@ Changes in version 0.2.1.7-alpha - 2008-10-xx
     - When we're choosing an exit node for a circuit, and we have
     - When we're choosing an exit node for a circuit, and we have
       no pending streams, choose a good general exit rather than one that
       no pending streams, choose a good general exit rather than one that
       supports "all the pending streams". Bugfix on 0.1.1.x. Fix by rovv.
       supports "all the pending streams". Bugfix on 0.1.1.x. Fix by rovv.
+    - Send a valid END cell back when a client tries to connect to a
+      nonexistent hidden service port.  Bugfix on 0.1.2.15.  Fixes bug
+      840.  Patch from rovv.
 
 
 
 
 Changes in version 0.2.1.6-alpha - 2008-09-30
 Changes in version 0.2.1.6-alpha - 2008-09-30

+ 1 - 1
src/or/connection_edge.c

@@ -2566,7 +2566,7 @@ connection_exit_begin_conn(cell_t *cell, circuit_t *circ)
                n_stream->_base.port);
                n_stream->_base.port);
       end_payload[0] = END_STREAM_REASON_EXITPOLICY;
       end_payload[0] = END_STREAM_REASON_EXITPOLICY;
       relay_send_command_from_edge(rh.stream_id, circ, RELAY_COMMAND_END,
       relay_send_command_from_edge(rh.stream_id, circ, RELAY_COMMAND_END,
-                                   end_payload, 1, NULL);
+                                   end_payload, 1, origin_circ->cpath->prev);
       connection_free(TO_CONN(n_stream));
       connection_free(TO_CONN(n_stream));
       tor_free(address);
       tor_free(address);
       return 0;
       return 0;