summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/or/command.c11
-rw-r--r--src/or/control.c2
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 */
}
}