summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2003-11-17 09:30:29 +0000
committerRoger Dingledine <arma@torproject.org>2003-11-17 09:30:29 +0000
commit7a702d64d4e2edbd9b05a60e72317a21c3849e54 (patch)
tree209aa016e3f51f40325047656ed62a806065f8f3
parentf42c77f6186569d22f85fa7107a9828712c7dac5 (diff)
downloadtor-7a702d64d4e2edbd9b05a60e72317a21c3849e54.tar.gz
tor-7a702d64d4e2edbd9b05a60e72317a21c3849e54.zip
more verbose info for circuits when kill -USR1
svn:r829
-rw-r--r--src/or/circuit.c31
1 files changed, 23 insertions, 8 deletions
diff --git a/src/or/circuit.c b/src/or/circuit.c
index ad94f13c3f..d0a763565a 100644
--- a/src/or/circuit.c
+++ b/src/or/circuit.c
@@ -597,27 +597,42 @@ void circuit_about_to_close_connection(connection_t *conn) {
} /* end switch */
}
+void circuit_dump_details(int severity, circuit_t *circ, int poll_index,
+ char *type, int this_circid, int other_circid) {
+ struct crypt_path_t *hop;
+ log(severity,"Conn %d has %s circuit: circID %d (other side %d), state %d (%s), born %d",
+ poll_index, type, this_circid, other_circid, circ->state,
+ circuit_state_to_string[circ->state], (int)circ->timestamp_created);
+ if(circ->cpath) { /* circ starts at this node */
+ if(circ->state == CIRCUIT_STATE_BUILDING)
+ log(severity,"Building: desired len %d, planned exit node %s.",
+ circ->build_state->desired_path_len, circ->build_state->chosen_exit);
+ for(hop=circ->cpath;hop->next != circ->cpath; hop=hop->next)
+ log(severity,"hop: state %d, addr %d, port %d", hop->state, hop->addr, hop->port);
+ }
+}
+
void circuit_dump_by_conn(connection_t *conn, int severity) {
circuit_t *circ;
connection_t *tmpconn;
for(circ=global_circuitlist;circ;circ = circ->next) {
if(circ->p_conn == conn)
- log(severity, "Conn %d has App-ward circuit: circID %d (other side %d), state %d (%s)",
- conn->poll_index, circ->p_circ_id, circ->n_circ_id, circ->state, circuit_state_to_string[circ->state]);
+ circuit_dump_details(severity, circ, conn->poll_index, "App-ward",
+ circ->p_circ_id, circ->n_circ_id);
for(tmpconn=circ->p_streams; tmpconn; tmpconn=tmpconn->next_stream) {
if(tmpconn == conn) {
- log(severity,"Conn %d has App-ward circuit: circID %d (other side %d), state %d (%s)",
- conn->poll_index, circ->p_circ_id, circ->n_circ_id, circ->state, circuit_state_to_string[circ->state]);
+ circuit_dump_details(severity, circ, conn->poll_index, "App-ward",
+ circ->p_circ_id, circ->n_circ_id);
}
}
if(circ->n_conn == conn)
- log(severity,"Conn %d has Exit-ward circuit: circID %d (other side %d), state %d (%s)",
- conn->poll_index, circ->n_circ_id, circ->p_circ_id, circ->state, circuit_state_to_string[circ->state]);
+ circuit_dump_details(severity, circ, conn->poll_index, "Exit-ward",
+ circ->n_circ_id, circ->p_circ_id);
for(tmpconn=circ->n_streams; tmpconn; tmpconn=tmpconn->next_stream) {
if(tmpconn == conn) {
- log(severity,"Conn %d has Exit-ward circuit: circID %d (other side %d), state %d (%s)",
- conn->poll_index, circ->n_circ_id, circ->p_circ_id, circ->state, circuit_state_to_string[circ->state]);
+ circuit_dump_details(severity, circ, conn->poll_index, "Exit-ward",
+ circ->n_circ_id, circ->p_circ_id);
}
}
}