diff --git a/ChangeLog b/ChangeLog index 4fcb29a548..b51c3d64ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,10 @@ Changes in version 0.1.2.4-alpha - 2006-11-?? - o Minor Features + o Minor features - Add breakdown of public key operations to dumped statistics. + o Minor bugfixes + - Don't log spurious warnings when we see a circuit close reason we + don't recognize; it's probably just from a newer version of Tor. Changes in version 0.1.2.3-alpha - 2006-10-29 o Minor features: diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 78fcbb3df9..0104886d4e 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -849,12 +849,13 @@ _circuit_mark_for_close(circuit_t *circ, int reason, int line, reason = END_CIRC_REASON_NONE; } - if (reason & END_CIRC_REASON_FLAG_REMOTE) + if (reason & END_CIRC_REASON_FLAG_REMOTE) { reason &= ~END_CIRC_REASON_FLAG_REMOTE; if (reason < _END_CIRC_REASON_MIN || reason > _END_CIRC_REASON_MAX) { - log_warn(LD_BUG, "Reason %d out of range at %s:%d", reason, file, line); - orig_reason = reason = END_CIRC_REASON_NONE; + if (!(orig_reason & END_CIRC_REASON_FLAG_REMOTE)) + log_warn(LD_BUG, "Reason %d out of range at %s:%d", reason, file, line); + reason = END_CIRC_REASON_NONE; } if (circ->state == CIRCUIT_STATE_ONIONSKIN_PENDING) { diff --git a/src/or/command.c b/src/or/command.c index dee38c9ecb..b3952efbd9 100644 --- a/src/or/command.c +++ b/src/or/command.c @@ -374,7 +374,7 @@ command_process_destroy_cell(cell_t *cell, or_connection_t *conn) cell->circ_id == TO_OR_CIRCUIT(circ)->p_circ_id) { /* the destroy came from behind */ circuit_set_p_circid_orconn(TO_OR_CIRCUIT(circ), 0, NULL); - circuit_mark_for_close(circ, reason); + circuit_mark_for_close(circ, reason|END_CIRC_REASON_FLAG_REMOTE); } else { /* the destroy came from ahead */ circuit_set_n_circid_orconn(circ, 0, NULL); if (CIRCUIT_IS_ORIGIN(circ)) {