fix assert: stop trying to send a socks reply to an *exit*

connection when we get an end cell before it's finished opening.


svn:r3886
This commit is contained in:
Roger Dingledine 2005-03-26 06:27:04 +00:00
parent 9e1543401f
commit fcfe6d2e8b

View File

@ -659,9 +659,10 @@ 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, if (conn->type == CONN_TYPE_AP)
connection_edge_end_reason_socks5_response(*(char *) connection_ap_handshake_socks_reply(conn, NULL, 0,
(cell->payload+RELAY_HEADER_SIZE))); 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;
} }