fix another case where we need to send a socks reply (reject)

back before we close the conn.


svn:r3876
This commit is contained in:
Roger Dingledine 2005-03-25 11:12:14 +00:00
parent 8945df8daa
commit 9b9dbad0b7
2 changed files with 4 additions and 1 deletions

View File

@ -281,7 +281,7 @@ void connection_about_to_close_connection(connection_t *conn)
if (conn->socks_request->has_finished == 0) { if (conn->socks_request->has_finished == 0) {
/* since conn gets removed right after this function finishes, /* since conn gets removed right after this function finishes,
* there's no point trying to send back a reply at this point. */ * 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 { } else {
control_event_stream_status(conn, STREAM_EVENT_CLOSED); control_event_stream_status(conn, STREAM_EVENT_CLOSED);
} }

View File

@ -659,6 +659,9 @@ connection_edge_process_relay_cell_not_open(
if (CIRCUIT_IS_ORIGIN(circ)) if (CIRCUIT_IS_ORIGIN(circ))
circuit_log_path(LOG_INFO,circ); circuit_log_path(LOG_INFO,circ);
conn->has_sent_end = 1; /* we just got an 'end', don't need to send one */ 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); connection_mark_for_close(conn);
return 0; return 0;
} }