Commit 78043b84 authored by Nick Mathewson's avatar Nick Mathewson 🏃
Browse files

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
parent ff487020
......@@ -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];
......
......@@ -2370,7 +2370,7 @@ handle_control_closecircuit(control_connection_t *conn, uint32_t len,
}
if (!safe || !circ->p_streams) {
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_NONE);
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_REQUESTED);
}
send_control_done(conn);
......@@ -2990,7 +2990,7 @@ orconn_target_get_name(int long_names,
name[0] = '$';
base16_encode(name+1, len-1, conn->identity_digest,
DIGEST_LEN);
} else {
} else {
tor_snprintf(name, len, "%s:%d",
conn->_base.address, conn->_base.port);
}
......
......@@ -158,7 +158,7 @@ circuit_receive_relay_cell(cell_t *cell, circuit_t *circ, int cell_direction)
if (relay_crypt(circ, cell, cell_direction, &layer_hint, &recognized) < 0) {
log_warn(LD_BUG,"relay crypt failed. Dropping connection.");
return -1;
return -END_CIRC_REASON_INTERNAL;
}
if (recognized) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment