mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
begin cells are now address:port, not address,port
(breaks backward compatibility) svn:r222
This commit is contained in:
parent
1ae95f66ed
commit
cb584627a4
@ -368,7 +368,7 @@ int ap_handshake_send_begin(connection_t *ap_conn, circuit_t *circ) {
|
||||
/* FIXME check for collisions */
|
||||
ap_conn->topic_id = ntohs(*(uint16_t *)(cell.payload+2));
|
||||
cell.payload[0] = TOPIC_COMMAND_BEGIN;
|
||||
snprintf(cell.payload+4, CELL_PAYLOAD_SIZE-4, "%s,%d", ap_conn->dest_addr, ap_conn->dest_port);
|
||||
snprintf(cell.payload+4, CELL_PAYLOAD_SIZE-4, "%s:%d", ap_conn->dest_addr, ap_conn->dest_port);
|
||||
cell.length = strlen(cell.payload+TOPIC_HEADER_SIZE)+1+TOPIC_HEADER_SIZE;
|
||||
log(LOG_DEBUG,"ap_handshake_send_begin(): Sending data cell to begin topic %d.", ap_conn->topic_id);
|
||||
if(circuit_deliver_data_cell_from_edge(&cell, circ, EDGE_AP) < 0) {
|
||||
|
@ -135,20 +135,20 @@ int connection_exit_send_connected(connection_t *conn) {
|
||||
|
||||
int connection_exit_begin_conn(cell_t *cell, circuit_t *circ) {
|
||||
connection_t *n_conn;
|
||||
char *comma;
|
||||
char *colon;
|
||||
|
||||
if(!memchr(cell->payload + TOPIC_HEADER_SIZE,0,cell->length - TOPIC_HEADER_SIZE)) {
|
||||
log(LOG_WARNING,"connection_exit_begin_conn(): topic begin cell has no \\0. Dropping.");
|
||||
return 0;
|
||||
}
|
||||
comma = strchr(cell->payload + TOPIC_HEADER_SIZE, ',');
|
||||
if(!comma) {
|
||||
log(LOG_WARNING,"connection_exit_begin_conn(): topic begin cell has no comma. Dropping.");
|
||||
colon = strchr(cell->payload + TOPIC_HEADER_SIZE, ':');
|
||||
if(!colon) {
|
||||
log(LOG_WARNING,"connection_exit_begin_conn(): topic begin cell has no colon. Dropping.");
|
||||
return 0;
|
||||
}
|
||||
*comma = 0;
|
||||
*colon = 0;
|
||||
|
||||
if(!atoi(comma+1)) { /* bad port */
|
||||
if(!atoi(colon+1)) { /* bad port */
|
||||
log(LOG_DEBUG,"connection_exit_begin_conn(): topic begin cell has invalid port. Dropping.");
|
||||
return 0;
|
||||
}
|
||||
@ -164,7 +164,7 @@ int connection_exit_begin_conn(cell_t *cell, circuit_t *circ) {
|
||||
n_conn->topic_id = ntohs(*(uint16_t *)(cell->payload+2));
|
||||
|
||||
n_conn->address = strdup(cell->payload + TOPIC_HEADER_SIZE);
|
||||
n_conn->port = atoi(comma+1);
|
||||
n_conn->port = atoi(colon+1);
|
||||
n_conn->state = EXIT_CONN_STATE_RESOLVING;
|
||||
n_conn->receiver_bucket = -1; /* edge connections don't do receiver buckets */
|
||||
n_conn->bandwidth = -1;
|
||||
|
Loading…
Reference in New Issue
Block a user