Commit a2fec314 authored by Roger Dingledine's avatar Roger Dingledine
Browse files

scream louder if you've got a pending circuit for a given

addr/port but the intended n_conn digest is wrong.


svn:r6544
parent 45065f14
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -418,9 +418,15 @@ circuit_n_conn_done(connection_t *or_conn, int status)
    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,
        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);