diff options
author | Nick Mathewson <nickm@torproject.org> | 2004-04-03 03:37:11 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2004-04-03 03:37:11 +0000 |
commit | d93ff0b82f9c4a983677cddf02d43b40f801d1a0 (patch) | |
tree | 36d29cd40d165c1af20ccd69cd055afb1d1e5c42 /src/or/connection_edge.c | |
parent | 7eaa655b6db66664b643b16b9d296b0858f31e42 (diff) | |
download | tor-d93ff0b82f9c4a983677cddf02d43b40f801d1a0.tar tor-d93ff0b82f9c4a983677cddf02d43b40f801d1a0.tar.gz |
Handle rendezvous relay cells
svn:r1464
Diffstat (limited to 'src/or/connection_edge.c')
-rw-r--r-- | src/or/connection_edge.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 77da7b211..206f5dae7 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -171,7 +171,7 @@ int connection_edge_end(connection_t *conn, char reason, crypt_path_t *cpath_lay * return -1. Else return 0. */ int connection_edge_send_command(connection_t *fromconn, circuit_t *circ, - int relay_command, void *payload, + int relay_command, const char *payload, int payload_len, crypt_path_t *cpath_layer) { cell_t cell; relay_header_t rh; @@ -433,6 +433,15 @@ int connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, connection_start_reading(conn); connection_edge_package_raw_inbuf(conn); /* handle whatever might still be on the inbuf */ return 0; + case RELAY_COMMAND_ESTABLISH_INTRO: + case RELAY_COMMAND_ESTABLISH_RENDEZVOUS: + case RELAY_COMMAND_INTRODUCE1: + case RELAY_COMMAND_INTRODUCE2: + case RELAY_COMMAND_RENDEZVOUS1: + case RELAY_COMMAND_RENDEZVOUS2: + rend_process_relay_cell(circ, rh.command, rh.length, + cell->payload+RELAY_HEADER_SIZE); + return 0; } log_fn(LOG_WARN,"unknown relay command %d.",rh.command); return -1; |