aboutsummaryrefslogtreecommitdiff
path: root/src/or/connection_edge.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2004-04-03 03:37:11 +0000
committerNick Mathewson <nickm@torproject.org>2004-04-03 03:37:11 +0000
commitd93ff0b82f9c4a983677cddf02d43b40f801d1a0 (patch)
tree36d29cd40d165c1af20ccd69cd055afb1d1e5c42 /src/or/connection_edge.c
parent7eaa655b6db66664b643b16b9d296b0858f31e42 (diff)
downloadtor-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.c11
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;