diff options
-rw-r--r-- | src/or/command.c | 11 | ||||
-rw-r--r-- | src/or/control.c | 2 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/or/command.c b/src/or/command.c index 9b30e2379d..405f766c98 100644 --- a/src/or/command.c +++ b/src/or/command.c @@ -384,7 +384,16 @@ command_process_destroy_cell(cell_t *cell, or_connection_t *conn) reason == END_CIRC_REASON_REQUESTED) { /* XXXX This logic is wrong. Really, we should report the fact that * the circuit was closed because of a DESTROY, *and* we should report - * the reason that we were given. -NM */ + * the reason that we were given. -NM + * Hrmm. We could store the fact that we sent a truncate and the + * reason for this truncate in circuit_t. If we ever get a destroy + * that doesn't match this reason, we could complain loudly -MP + * That won't work for the cases where the destroy is not because of + * a truncate, though. The idea is that if we get a DESTROYED cell + * with reason 'CONNECTFAILED' and another DESTROYED cell with reason + * 'RESOURCELIMIT', the controller may want to know the reported + * reason. -NM + */ reason = END_CIRC_REASON_DESTROYED; } circuit_mark_for_close(circ, reason); diff --git a/src/or/control.c b/src/or/control.c index 8001fe216e..8dc8182f5d 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -2837,7 +2837,7 @@ circuit_end_reason_to_string(int reason) return "REASON=NOSUCHSERVICE"; default: log_warn(LD_BUG, "Unrecognized reason code %d", (int)reason); - return NULL; + return "REASON=UNRECOGNIZED"; /* should never get called */ } } |