summaryrefslogtreecommitdiff
path: root/src/or/command.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2006-10-13 05:27:59 +0000
committerNick Mathewson <nickm@torproject.org>2006-10-13 05:27:59 +0000
commit78043b847822d122e38942b2fe71e0840235a169 (patch)
tree626f3c10c95da9428bcf8be636b5e19afc28bccd /src/or/command.c
parentff487020aba23c17845a57f4f8ad1c4a72b9a1f2 (diff)
downloadtor-78043b847822d122e38942b2fe71e0840235a169.tar.gz
tor-78043b847822d122e38942b2fe71e0840235a169.zip
r9017@totoro: nickm | 2006-10-13 01:27:33 -0400
Second patch to work on circuit close reasons from Mike Perry. Disabled partially; see comment. Whitespace cleaned up. svn:r8699
Diffstat (limited to 'src/or/command.c')
-rw-r--r--src/or/command.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/or/command.c b/src/or/command.c
index 27779daeb6..8a45ff46b5 100644
--- a/src/or/command.c
+++ b/src/or/command.c
@@ -378,6 +378,19 @@ command_process_destroy_cell(cell_t *cell, or_connection_t *conn)
} else { /* the destroy came from ahead */
circuit_set_n_circid_orconn(circ, 0, NULL);
if (CIRCUIT_IS_ORIGIN(circ)) {
+ /* Prevent arbitrary destroys from going unnoticed by controller */
+ /* XXXX Not quite right; what we want is to tell the controller the
+ * exact reason that we were asked to close, but tell it that we
+ * closed because we were asked. Anything else is not accurate.
+ * OR_CONN_CLOSED is certainly wrong, since a destroy doesn't mean
+ * that the underlying OR connection got closed. -NM */
+#if 0
+ if (reason == END_CIRC_AT_ORIGIN ||
+ reason == END_CIRC_REASON_NONE ||
+ reason == END_CIRC_REASON_REQUESTED) {
+ reason = END_CIRC_REASON_OR_CONN_CLOSED;
+ }
+#endif
circuit_mark_for_close(circ, reason);
} else {
char payload[1];