summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2003-12-14 06:50:44 +0000
committerRoger Dingledine <arma@torproject.org>2003-12-14 06:50:44 +0000
commit8f573c06c3d9b46596354b5e2b73b3e07b36a335 (patch)
tree7bebd0f494e675132264c53a01f9ca1b87dfab7b
parent1a2813ba7b07d466c8146bf9aa2e278530427f6b (diff)
downloadtor-8f573c06c3d9b46596354b5e2b73b3e07b36a335.tar.gz
tor-8f573c06c3d9b46596354b5e2b73b3e07b36a335.zip
start to track the 'unexpected relay cell' warning
svn:r928
-rw-r--r--src/or/connection_edge.c8
-rw-r--r--src/or/onion.c1
2 files changed, 6 insertions, 3 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index 7100369a69..69e9f7ac56 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -6,6 +6,7 @@
#include "tree.h"
extern or_options_t options; /* command-line and config-file options */
+extern char *conn_state_to_string[][_CONN_TYPE_MAX+1];
static int connection_ap_handshake_process_socks(connection_t *conn);
static int connection_ap_handshake_attach_circuit(connection_t *conn);
@@ -194,7 +195,8 @@ int connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, connection
conn->has_sent_end = 1;
return 0;
} else {
- log_fn(LOG_WARN,"Got an unexpected relay cell, not in 'open' state. Closing.");
+ log_fn(LOG_WARN,"Got an unexpected relay command %d, in state %d (%s). Closing.",
+ relay_command, conn->state, conn_state_to_string[conn->type][conn->state]);
connection_edge_end(conn, END_STREAM_REASON_MISC, conn->cpath_layer);
return -1;
}
@@ -304,7 +306,7 @@ int connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, connection
return -1;
}
if (circuit_send_next_onion_skin(circ)<0) {
- log_fn(LOG_WARN,"circuit_send_next_onion_skin() failed.");
+ log_fn(LOG_INFO,"circuit_send_next_onion_skin() failed.");
return -1;
}
return 0;
@@ -842,7 +844,7 @@ struct client_dns_entry {
char *address;
uint32_t addr;
time_t expires;
-};
+};
static int client_dns_size = 0;
static SPLAY_HEAD(client_dns_tree, client_dns_entry) client_dns_root;
diff --git a/src/or/onion.c b/src/or/onion.c
index d2ec1b94ab..5578fb7935 100644
--- a/src/or/onion.c
+++ b/src/or/onion.c
@@ -477,6 +477,7 @@ int onion_extend_cpath(crypt_path_t **head_ptr, cpath_build_state_t *state, rout
/* try the nodes in EntryNodes first */
sl = smartlist_create(MAX_ROUTERS_IN_DIR);
add_nickname_list_to_smartlist(sl,options.EntryNodes);
+ /* XXX one day, consider picking chosen_exit knowing what's in EntryNodes */
remove_twins_from_smartlist(sl,router_get_by_nickname(state->chosen_exit));
smartlist_subtract(sl,excludednodes);
choice = smartlist_choose(sl);