diff options
Diffstat (limited to 'toxcore/onion.c')
-rw-r--r-- | toxcore/onion.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/toxcore/onion.c b/toxcore/onion.c index 9819762d..b4d2a364 100644 --- a/toxcore/onion.c +++ b/toxcore/onion.c | |||
@@ -50,6 +50,7 @@ int send_onion_packet(DHT *dht, Node_format *nodes, uint8_t *data, uint32_t leng | |||
50 | return -1; | 50 | return -1; |
51 | 51 | ||
52 | uint8_t step1[sizeof(IP_Port) + length]; | 52 | uint8_t step1[sizeof(IP_Port) + length]; |
53 | to_net_family(&nodes[3].ip_port.ip); | ||
53 | memcpy(step1, &nodes[3].ip_port, sizeof(IP_Port)); | 54 | memcpy(step1, &nodes[3].ip_port, sizeof(IP_Port)); |
54 | memcpy(step1 + sizeof(IP_Port), data, length); | 55 | memcpy(step1 + sizeof(IP_Port), data, length); |
55 | 56 | ||
@@ -60,6 +61,7 @@ int send_onion_packet(DHT *dht, Node_format *nodes, uint8_t *data, uint32_t leng | |||
60 | crypto_box_keypair(random_public_key, random_secret_key); | 61 | crypto_box_keypair(random_public_key, random_secret_key); |
61 | 62 | ||
62 | uint8_t step2[sizeof(IP_Port) + SEND_BASE + length]; | 63 | uint8_t step2[sizeof(IP_Port) + SEND_BASE + length]; |
64 | to_net_family(&nodes[2].ip_port.ip); | ||
63 | memcpy(step2, &nodes[2].ip_port, sizeof(IP_Port)); | 65 | memcpy(step2, &nodes[2].ip_port, sizeof(IP_Port)); |
64 | memcpy(step2 + sizeof(IP_Port), random_public_key, crypto_box_PUBLICKEYBYTES); | 66 | memcpy(step2 + sizeof(IP_Port), random_public_key, crypto_box_PUBLICKEYBYTES); |
65 | 67 | ||
@@ -71,6 +73,7 @@ int send_onion_packet(DHT *dht, Node_format *nodes, uint8_t *data, uint32_t leng | |||
71 | 73 | ||
72 | crypto_box_keypair(random_public_key, random_secret_key); | 74 | crypto_box_keypair(random_public_key, random_secret_key); |
73 | uint8_t step3[sizeof(IP_Port) + SEND_BASE * 2 + length]; | 75 | uint8_t step3[sizeof(IP_Port) + SEND_BASE * 2 + length]; |
76 | to_net_family(&nodes[1].ip_port.ip); | ||
74 | memcpy(step3, &nodes[1].ip_port, sizeof(IP_Port)); | 77 | memcpy(step3, &nodes[1].ip_port, sizeof(IP_Port)); |
75 | memcpy(step3 + sizeof(IP_Port), random_public_key, crypto_box_PUBLICKEYBYTES); | 78 | memcpy(step3 + sizeof(IP_Port), random_public_key, crypto_box_PUBLICKEYBYTES); |
76 | len = encrypt_data(nodes[1].client_id, random_secret_key, nonce, | 79 | len = encrypt_data(nodes[1].client_id, random_secret_key, nonce, |
@@ -134,6 +137,8 @@ static int handle_send_initial(void *object, IP_Port source, uint8_t *packet, ui | |||
134 | 137 | ||
135 | IP_Port send_to; | 138 | IP_Port send_to; |
136 | memcpy(&send_to, plain, sizeof(IP_Port)); | 139 | memcpy(&send_to, plain, sizeof(IP_Port)); |
140 | to_host_family(&send_to.ip); | ||
141 | |||
137 | uint8_t data[MAX_ONION_SIZE]; | 142 | uint8_t data[MAX_ONION_SIZE]; |
138 | data[0] = NET_PACKET_ONION_SEND_1; | 143 | data[0] = NET_PACKET_ONION_SEND_1; |
139 | memcpy(data + 1, packet + 1, crypto_box_NONCEBYTES); | 144 | memcpy(data + 1, packet + 1, crypto_box_NONCEBYTES); |
@@ -176,6 +181,8 @@ static int handle_send_1(void *object, IP_Port source, uint8_t *packet, uint32_t | |||
176 | 181 | ||
177 | IP_Port send_to; | 182 | IP_Port send_to; |
178 | memcpy(&send_to, plain, sizeof(IP_Port)); | 183 | memcpy(&send_to, plain, sizeof(IP_Port)); |
184 | to_host_family(&send_to.ip); | ||
185 | |||
179 | uint8_t data[MAX_ONION_SIZE]; | 186 | uint8_t data[MAX_ONION_SIZE]; |
180 | data[0] = NET_PACKET_ONION_SEND_2; | 187 | data[0] = NET_PACKET_ONION_SEND_2; |
181 | memcpy(data + 1, packet + 1, crypto_box_NONCEBYTES); | 188 | memcpy(data + 1, packet + 1, crypto_box_NONCEBYTES); |
@@ -221,6 +228,8 @@ static int handle_send_2(void *object, IP_Port source, uint8_t *packet, uint32_t | |||
221 | 228 | ||
222 | IP_Port send_to; | 229 | IP_Port send_to; |
223 | memcpy(&send_to, plain, sizeof(IP_Port)); | 230 | memcpy(&send_to, plain, sizeof(IP_Port)); |
231 | to_host_family(&send_to.ip); | ||
232 | |||
224 | uint8_t data[MAX_ONION_SIZE]; | 233 | uint8_t data[MAX_ONION_SIZE]; |
225 | memcpy(data, plain + sizeof(IP_Port), len - sizeof(IP_Port)); | 234 | memcpy(data, plain + sizeof(IP_Port), len - sizeof(IP_Port)); |
226 | uint32_t data_len = (len - sizeof(IP_Port)); | 235 | uint32_t data_len = (len - sizeof(IP_Port)); |