[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] scream louder if you"ve got a pending circuit for a given
Update of /home2/or/cvsroot/tor/src/or
In directory moria:/home/arma/work/onion/cvs/tor/src/or
Modified Files:
circuitbuild.c
Log Message:
scream louder if you've got a pending circuit for a given
addr/port but the intended n_conn digest is wrong.
Index: circuitbuild.c
===================================================================
RCS file: /home2/or/cvsroot/tor/src/or/circuitbuild.c,v
retrieving revision 1.237
retrieving revision 1.238
diff -u -p -d -r1.237 -r1.238
--- circuitbuild.c 5 Jun 2006 08:58:18 -0000 1.237
+++ circuitbuild.c 5 Jun 2006 09:47:19 -0000 1.238
@@ -418,9 +418,15 @@ circuit_n_conn_done(connection_t *or_con
tor_assert(circ->state == CIRCUIT_STATE_OR_WAIT);
if (!circ->n_conn &&
circ->n_addr == or_conn->addr &&
- circ->n_port == or_conn->port &&
- !memcmp(or_conn->identity_digest, circ->n_conn_id_digest,
- DIGEST_LEN)) {
+ circ->n_port == or_conn->port) {
+ if (memcmp(or_conn->identity_digest, circ->n_conn_id_digest,
+ 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 */
log_info(LD_CIRC,"or_conn failed. Closing circ.");
circuit_mark_for_close(circ, END_CIRC_REASON_OR_CONN_CLOSED);