summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2005-03-25 11:12:14 +0000
committerRoger Dingledine <arma@torproject.org>2005-03-25 11:12:14 +0000
commit9b9dbad0b77d9fec872e42aa1952b2ee6808e393 (patch)
tree01facf1b26e9e07afec419e17620ef34234bb913
parent8945df8daaebc07df3cf7ac7987982ad879748e5 (diff)
downloadtor-9b9dbad0b77d9fec872e42aa1952b2ee6808e393.tar.gz
tor-9b9dbad0b77d9fec872e42aa1952b2ee6808e393.zip
fix another case where we need to send a socks reply (reject)
back before we close the conn. svn:r3876
-rw-r--r--src/or/connection.c2
-rw-r--r--src/or/relay.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/or/connection.c b/src/or/connection.c
index fc4c6f0772..bd49ac057a 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -281,7 +281,7 @@ void connection_about_to_close_connection(connection_t *conn)
if (conn->socks_request->has_finished == 0) {
/* since conn gets removed right after this function finishes,
* there's no point trying to send back a reply at this point. */
- log_fn(LOG_INFO,"Bug: Closing stream without sending back a socks reply.");
+ log_fn(LOG_WARN,"Bug: Closing stream without sending back a socks reply.");
} else {
control_event_stream_status(conn, STREAM_EVENT_CLOSED);
}
diff --git a/src/or/relay.c b/src/or/relay.c
index 7135569bbf..f03332fbf0 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -659,6 +659,9 @@ connection_edge_process_relay_cell_not_open(
if (CIRCUIT_IS_ORIGIN(circ))
circuit_log_path(LOG_INFO,circ);
conn->has_sent_end = 1; /* we just got an 'end', don't need to send one */
+ connection_ap_handshake_socks_reply(conn, NULL, 0,
+ connection_edge_end_reason_socks5_response(*(char *)
+ (cell->payload+RELAY_HEADER_SIZE)));
connection_mark_for_close(conn);
return 0;
}