we used to kill the circuit when we receive a relay command we

don't recognize. now we just drop it. perhaps this will make us
more forward-compatible? or perhaps it will bite us? one day we
will find out.


svn:r5405
This commit is contained in:
Roger Dingledine 2005-11-17 03:40:20 +00:00
parent 6f06079741
commit af86345b74

View File

@ -798,11 +798,12 @@ connection_edge_process_relay_cell_not_open(
} }
log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL,
"Got an unexpected relay command %d, in state %d (%s). Closing.", "Got an unexpected relay command %d, in state %d (%s). Dropping.",
rh->command, conn->state, conn_state_to_string(conn->type, conn->state)); rh->command, conn->state, conn_state_to_string(conn->type, conn->state));
connection_edge_end(conn, END_STREAM_REASON_TORPROTOCOL, conn->cpath_layer); return 0; /* for forward compatibility, don't kill the circuit */
connection_mark_for_close(conn); // connection_edge_end(conn, END_STREAM_REASON_TORPROTOCOL, conn->cpath_layer);
return -1; // connection_mark_for_close(conn);
// return -1;
} }
/** An incoming relay cell has arrived on circuit <b>circ</b>. If /** An incoming relay cell has arrived on circuit <b>circ</b>. If
@ -1035,8 +1036,10 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ,
cell->payload+RELAY_HEADER_SIZE); cell->payload+RELAY_HEADER_SIZE);
return 0; return 0;
} }
warn(LD_PROTOCOL,"unknown relay command %d.",rh.command); log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL,
return -1; "Received unknown relay command %d. Perhaps the other side is using a newer version of Tor? Dropping.",
rh.command);
return 0; /* for forward compatibility, don't kill the circuit */
} }
uint64_t stats_n_data_cells_packaged = 0; uint64_t stats_n_data_cells_packaged = 0;