mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-14 15:23:27 +01:00
scream louder if you've got a pending circuit for a given
addr/port but the intended n_conn digest is wrong. svn:r6544
This commit is contained in:
parent
45065f1466
commit
a2fec314b6
@ -418,9 +418,15 @@ circuit_n_conn_done(connection_t *or_conn, int status)
|
|||||||
tor_assert(circ->state == CIRCUIT_STATE_OR_WAIT);
|
tor_assert(circ->state == CIRCUIT_STATE_OR_WAIT);
|
||||||
if (!circ->n_conn &&
|
if (!circ->n_conn &&
|
||||||
circ->n_addr == or_conn->addr &&
|
circ->n_addr == or_conn->addr &&
|
||||||
circ->n_port == or_conn->port &&
|
circ->n_port == or_conn->port) {
|
||||||
!memcmp(or_conn->identity_digest, circ->n_conn_id_digest,
|
if (memcmp(or_conn->identity_digest, circ->n_conn_id_digest,
|
||||||
DIGEST_LEN)) {
|
DIGEST_LEN)) {
|
||||||
|
log_fn(LOG_PROTOCOL_WARN, LD_CIRC,
|
||||||
|
"Pending circuit to %s:%d is intended for different digest!",
|
||||||
|
or_conn->address, or_conn->port);
|
||||||
|
circuit_mark_for_close(circ, END_CIRC_REASON_OR_IDENTITY);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (!status) { /* or_conn failed; close circ */
|
if (!status) { /* or_conn failed; close circ */
|
||||||
log_info(LD_CIRC,"or_conn failed. Closing circ.");
|
log_info(LD_CIRC,"or_conn failed. Closing circ.");
|
||||||
circuit_mark_for_close(circ, END_CIRC_REASON_OR_CONN_CLOSED);
|
circuit_mark_for_close(circ, END_CIRC_REASON_OR_CONN_CLOSED);
|
||||||
|
Loading…
Reference in New Issue
Block a user