diff options
author | iphydf <iphydf@users.noreply.github.com> | 2016-08-31 19:12:19 +0100 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2016-08-31 20:04:16 +0100 |
commit | 633da98ae69866efb195e00d9a3a22ace6bada66 (patch) | |
tree | 875535f3d2257c4ea5bb97a553b2f1beab4a1590 /toxcore/onion_announce.c | |
parent | 6356eb4e4fe407fa7870f2a685d0d08b5c2ec5bb (diff) |
Add braces to all if statements.
Diffstat (limited to 'toxcore/onion_announce.c')
-rw-r--r-- | toxcore/onion_announce.c | 96 |
1 files changed, 64 insertions, 32 deletions
diff --git a/toxcore/onion_announce.c b/toxcore/onion_announce.c index f6a00f67..08492bb9 100644 --- a/toxcore/onion_announce.c +++ b/toxcore/onion_announce.c | |||
@@ -51,8 +51,9 @@ int create_announce_request(uint8_t *packet, uint16_t max_packet_length, const u | |||
51 | const uint8_t *public_key, const uint8_t *secret_key, const uint8_t *ping_id, const uint8_t *client_id, | 51 | const uint8_t *public_key, const uint8_t *secret_key, const uint8_t *ping_id, const uint8_t *client_id, |
52 | const uint8_t *data_public_key, uint64_t sendback_data) | 52 | const uint8_t *data_public_key, uint64_t sendback_data) |
53 | { | 53 | { |
54 | if (max_packet_length < ONION_ANNOUNCE_REQUEST_SIZE) | 54 | if (max_packet_length < ONION_ANNOUNCE_REQUEST_SIZE) { |
55 | return -1; | 55 | return -1; |
56 | } | ||
56 | 57 | ||
57 | uint8_t plain[ONION_PING_ID_SIZE + crypto_box_PUBLICKEYBYTES + crypto_box_PUBLICKEYBYTES + | 58 | uint8_t plain[ONION_PING_ID_SIZE + crypto_box_PUBLICKEYBYTES + crypto_box_PUBLICKEYBYTES + |
58 | ONION_ANNOUNCE_SENDBACK_DATA_LENGTH]; | 59 | ONION_ANNOUNCE_SENDBACK_DATA_LENGTH]; |
@@ -68,8 +69,9 @@ int create_announce_request(uint8_t *packet, uint16_t max_packet_length, const u | |||
68 | int len = encrypt_data(dest_client_id, secret_key, packet + 1, plain, sizeof(plain), | 69 | int len = encrypt_data(dest_client_id, secret_key, packet + 1, plain, sizeof(plain), |
69 | packet + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES); | 70 | packet + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES); |
70 | 71 | ||
71 | if ((uint32_t)len + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES != ONION_ANNOUNCE_REQUEST_SIZE) | 72 | if ((uint32_t)len + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES != ONION_ANNOUNCE_REQUEST_SIZE) { |
72 | return -1; | 73 | return -1; |
74 | } | ||
73 | 75 | ||
74 | memcpy(packet + 1 + crypto_box_NONCEBYTES, public_key, crypto_box_PUBLICKEYBYTES); | 76 | memcpy(packet + 1 + crypto_box_NONCEBYTES, public_key, crypto_box_PUBLICKEYBYTES); |
75 | 77 | ||
@@ -89,11 +91,13 @@ int create_announce_request(uint8_t *packet, uint16_t max_packet_length, const u | |||
89 | int create_data_request(uint8_t *packet, uint16_t max_packet_length, const uint8_t *public_key, | 91 | int create_data_request(uint8_t *packet, uint16_t max_packet_length, const uint8_t *public_key, |
90 | const uint8_t *encrypt_public_key, const uint8_t *nonce, const uint8_t *data, uint16_t length) | 92 | const uint8_t *encrypt_public_key, const uint8_t *nonce, const uint8_t *data, uint16_t length) |
91 | { | 93 | { |
92 | if (DATA_REQUEST_MIN_SIZE + length > max_packet_length) | 94 | if (DATA_REQUEST_MIN_SIZE + length > max_packet_length) { |
93 | return -1; | 95 | return -1; |
96 | } | ||
94 | 97 | ||
95 | if ((unsigned int)DATA_REQUEST_MIN_SIZE + length > ONION_MAX_DATA_SIZE) | 98 | if ((unsigned int)DATA_REQUEST_MIN_SIZE + length > ONION_MAX_DATA_SIZE) { |
96 | return -1; | 99 | return -1; |
100 | } | ||
97 | 101 | ||
98 | packet[0] = NET_PACKET_ONION_DATA_REQUEST; | 102 | packet[0] = NET_PACKET_ONION_DATA_REQUEST; |
99 | memcpy(packet + 1, public_key, crypto_box_PUBLICKEYBYTES); | 103 | memcpy(packet + 1, public_key, crypto_box_PUBLICKEYBYTES); |
@@ -109,8 +113,9 @@ int create_data_request(uint8_t *packet, uint16_t max_packet_length, const uint8 | |||
109 | packet + 1 + crypto_box_PUBLICKEYBYTES + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES); | 113 | packet + 1 + crypto_box_PUBLICKEYBYTES + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES); |
110 | 114 | ||
111 | if (1 + crypto_box_PUBLICKEYBYTES + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + len != DATA_REQUEST_MIN_SIZE + | 115 | if (1 + crypto_box_PUBLICKEYBYTES + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + len != DATA_REQUEST_MIN_SIZE + |
112 | length) | 116 | length) { |
113 | return -1; | 117 | return -1; |
118 | } | ||
114 | 119 | ||
115 | return DATA_REQUEST_MIN_SIZE + length; | 120 | return DATA_REQUEST_MIN_SIZE + length; |
116 | } | 121 | } |
@@ -137,17 +142,20 @@ int send_announce_request(Networking_Core *net, const Onion_Path *path, Node_for | |||
137 | int len = create_announce_request(request, sizeof(request), dest.public_key, public_key, secret_key, ping_id, client_id, | 142 | int len = create_announce_request(request, sizeof(request), dest.public_key, public_key, secret_key, ping_id, client_id, |
138 | data_public_key, sendback_data); | 143 | data_public_key, sendback_data); |
139 | 144 | ||
140 | if (len != sizeof(request)) | 145 | if (len != sizeof(request)) { |
141 | return -1; | 146 | return -1; |
147 | } | ||
142 | 148 | ||
143 | uint8_t packet[ONION_MAX_PACKET_SIZE]; | 149 | uint8_t packet[ONION_MAX_PACKET_SIZE]; |
144 | len = create_onion_packet(packet, sizeof(packet), path, dest.ip_port, request, sizeof(request)); | 150 | len = create_onion_packet(packet, sizeof(packet), path, dest.ip_port, request, sizeof(request)); |
145 | 151 | ||
146 | if (len == -1) | 152 | if (len == -1) { |
147 | return -1; | 153 | return -1; |
154 | } | ||
148 | 155 | ||
149 | if (sendpacket(net, path->ip_port1, packet, len) != len) | 156 | if (sendpacket(net, path->ip_port1, packet, len) != len) { |
150 | return -1; | 157 | return -1; |
158 | } | ||
151 | 159 | ||
152 | return 0; | 160 | return 0; |
153 | } | 161 | } |
@@ -172,17 +180,20 @@ int send_data_request(Networking_Core *net, const Onion_Path *path, IP_Port dest | |||
172 | uint8_t request[ONION_MAX_DATA_SIZE]; | 180 | uint8_t request[ONION_MAX_DATA_SIZE]; |
173 | int len = create_data_request(request, sizeof(request), public_key, encrypt_public_key, nonce, data, length); | 181 | int len = create_data_request(request, sizeof(request), public_key, encrypt_public_key, nonce, data, length); |
174 | 182 | ||
175 | if (len == -1) | 183 | if (len == -1) { |
176 | return -1; | 184 | return -1; |
185 | } | ||
177 | 186 | ||
178 | uint8_t packet[ONION_MAX_PACKET_SIZE]; | 187 | uint8_t packet[ONION_MAX_PACKET_SIZE]; |
179 | len = create_onion_packet(packet, sizeof(packet), path, dest, request, len); | 188 | len = create_onion_packet(packet, sizeof(packet), path, dest, request, len); |
180 | 189 | ||
181 | if (len == -1) | 190 | if (len == -1) { |
182 | return -1; | 191 | return -1; |
192 | } | ||
183 | 193 | ||
184 | if (sendpacket(net, path->ip_port1, packet, len) != len) | 194 | if (sendpacket(net, path->ip_port1, packet, len) != len) { |
185 | return -1; | 195 | return -1; |
196 | } | ||
186 | 197 | ||
187 | return 0; | 198 | return 0; |
188 | } | 199 | } |
@@ -211,8 +222,9 @@ static int in_entries(const Onion_Announce *onion_a, const uint8_t *public_key) | |||
211 | 222 | ||
212 | for (i = 0; i < ONION_ANNOUNCE_MAX_ENTRIES; ++i) { | 223 | for (i = 0; i < ONION_ANNOUNCE_MAX_ENTRIES; ++i) { |
213 | if (!is_timeout(onion_a->entries[i].time, ONION_ANNOUNCE_TIMEOUT) | 224 | if (!is_timeout(onion_a->entries[i].time, ONION_ANNOUNCE_TIMEOUT) |
214 | && public_key_cmp(onion_a->entries[i].public_key, public_key) == 0) | 225 | && public_key_cmp(onion_a->entries[i].public_key, public_key) == 0) { |
215 | return i; | 226 | return i; |
227 | } | ||
216 | } | 228 | } |
217 | 229 | ||
218 | return -1; | 230 | return -1; |
@@ -227,22 +239,27 @@ static int cmp_entry(const void *a, const void *b) | |||
227 | int t1 = is_timeout(entry1.time, ONION_ANNOUNCE_TIMEOUT); | 239 | int t1 = is_timeout(entry1.time, ONION_ANNOUNCE_TIMEOUT); |
228 | int t2 = is_timeout(entry2.time, ONION_ANNOUNCE_TIMEOUT); | 240 | int t2 = is_timeout(entry2.time, ONION_ANNOUNCE_TIMEOUT); |
229 | 241 | ||
230 | if (t1 && t2) | 242 | if (t1 && t2) { |
231 | return 0; | 243 | return 0; |
244 | } | ||
232 | 245 | ||
233 | if (t1) | 246 | if (t1) { |
234 | return -1; | 247 | return -1; |
248 | } | ||
235 | 249 | ||
236 | if (t2) | 250 | if (t2) { |
237 | return 1; | 251 | return 1; |
252 | } | ||
238 | 253 | ||
239 | int close = id_closest(cmp_public_key, entry1.public_key, entry2.public_key); | 254 | int close = id_closest(cmp_public_key, entry1.public_key, entry2.public_key); |
240 | 255 | ||
241 | if (close == 1) | 256 | if (close == 1) { |
242 | return 1; | 257 | return 1; |
258 | } | ||
243 | 259 | ||
244 | if (close == 2) | 260 | if (close == 2) { |
245 | return -1; | 261 | return -1; |
262 | } | ||
246 | 263 | ||
247 | return 0; | 264 | return 0; |
248 | } | 265 | } |
@@ -262,18 +279,21 @@ static int add_to_entries(Onion_Announce *onion_a, IP_Port ret_ip_port, const ui | |||
262 | 279 | ||
263 | if (pos == -1) { | 280 | if (pos == -1) { |
264 | for (i = 0; i < ONION_ANNOUNCE_MAX_ENTRIES; ++i) { | 281 | for (i = 0; i < ONION_ANNOUNCE_MAX_ENTRIES; ++i) { |
265 | if (is_timeout(onion_a->entries[i].time, ONION_ANNOUNCE_TIMEOUT)) | 282 | if (is_timeout(onion_a->entries[i].time, ONION_ANNOUNCE_TIMEOUT)) { |
266 | pos = i; | 283 | pos = i; |
284 | } | ||
267 | } | 285 | } |
268 | } | 286 | } |
269 | 287 | ||
270 | if (pos == -1) { | 288 | if (pos == -1) { |
271 | if (id_closest(onion_a->dht->self_public_key, public_key, onion_a->entries[0].public_key) == 1) | 289 | if (id_closest(onion_a->dht->self_public_key, public_key, onion_a->entries[0].public_key) == 1) { |
272 | pos = 0; | 290 | pos = 0; |
291 | } | ||
273 | } | 292 | } |
274 | 293 | ||
275 | if (pos == -1) | 294 | if (pos == -1) { |
276 | return -1; | 295 | return -1; |
296 | } | ||
277 | 297 | ||
278 | memcpy(onion_a->entries[pos].public_key, public_key, crypto_box_PUBLICKEYBYTES); | 298 | memcpy(onion_a->entries[pos].public_key, public_key, crypto_box_PUBLICKEYBYTES); |
279 | onion_a->entries[pos].ret_ip_port = ret_ip_port; | 299 | onion_a->entries[pos].ret_ip_port = ret_ip_port; |
@@ -290,8 +310,9 @@ static int handle_announce_request(void *object, IP_Port source, const uint8_t * | |||
290 | { | 310 | { |
291 | Onion_Announce *onion_a = object; | 311 | Onion_Announce *onion_a = object; |
292 | 312 | ||
293 | if (length != ANNOUNCE_REQUEST_SIZE_RECV) | 313 | if (length != ANNOUNCE_REQUEST_SIZE_RECV) { |
294 | return 1; | 314 | return 1; |
315 | } | ||
295 | 316 | ||
296 | const uint8_t *packet_public_key = packet + 1 + crypto_box_NONCEBYTES; | 317 | const uint8_t *packet_public_key = packet + 1 + crypto_box_NONCEBYTES; |
297 | uint8_t shared_key[crypto_box_BEFORENMBYTES]; | 318 | uint8_t shared_key[crypto_box_BEFORENMBYTES]; |
@@ -303,8 +324,9 @@ static int handle_announce_request(void *object, IP_Port source, const uint8_t * | |||
303 | ONION_PING_ID_SIZE + crypto_box_PUBLICKEYBYTES + crypto_box_PUBLICKEYBYTES + ONION_ANNOUNCE_SENDBACK_DATA_LENGTH + | 324 | ONION_PING_ID_SIZE + crypto_box_PUBLICKEYBYTES + crypto_box_PUBLICKEYBYTES + ONION_ANNOUNCE_SENDBACK_DATA_LENGTH + |
304 | crypto_box_MACBYTES, plain); | 325 | crypto_box_MACBYTES, plain); |
305 | 326 | ||
306 | if ((uint32_t)len != sizeof(plain)) | 327 | if ((uint32_t)len != sizeof(plain)) { |
307 | return 1; | 328 | return 1; |
329 | } | ||
308 | 330 | ||
309 | uint8_t ping_id1[ONION_PING_ID_SIZE]; | 331 | uint8_t ping_id1[ONION_PING_ID_SIZE]; |
310 | generate_ping_id(onion_a, unix_time(), packet_public_key, source, ping_id1); | 332 | generate_ping_id(onion_a, unix_time(), packet_public_key, source, ping_id1); |
@@ -356,16 +378,18 @@ static int handle_announce_request(void *object, IP_Port source, const uint8_t * | |||
356 | if (num_nodes != 0) { | 378 | if (num_nodes != 0) { |
357 | nodes_length = pack_nodes(pl + 1 + ONION_PING_ID_SIZE, sizeof(nodes_list), nodes_list, num_nodes); | 379 | nodes_length = pack_nodes(pl + 1 + ONION_PING_ID_SIZE, sizeof(nodes_list), nodes_list, num_nodes); |
358 | 380 | ||
359 | if (nodes_length <= 0) | 381 | if (nodes_length <= 0) { |
360 | return 1; | 382 | return 1; |
383 | } | ||
361 | } | 384 | } |
362 | 385 | ||
363 | uint8_t data[ONION_ANNOUNCE_RESPONSE_MAX_SIZE]; | 386 | uint8_t data[ONION_ANNOUNCE_RESPONSE_MAX_SIZE]; |
364 | len = encrypt_data_symmetric(shared_key, nonce, pl, 1 + ONION_PING_ID_SIZE + nodes_length, | 387 | len = encrypt_data_symmetric(shared_key, nonce, pl, 1 + ONION_PING_ID_SIZE + nodes_length, |
365 | data + 1 + ONION_ANNOUNCE_SENDBACK_DATA_LENGTH + crypto_box_NONCEBYTES); | 388 | data + 1 + ONION_ANNOUNCE_SENDBACK_DATA_LENGTH + crypto_box_NONCEBYTES); |
366 | 389 | ||
367 | if (len != 1 + ONION_PING_ID_SIZE + nodes_length + crypto_box_MACBYTES) | 390 | if (len != 1 + ONION_PING_ID_SIZE + nodes_length + crypto_box_MACBYTES) { |
368 | return 1; | 391 | return 1; |
392 | } | ||
369 | 393 | ||
370 | data[0] = NET_PACKET_ANNOUNCE_RESPONSE; | 394 | data[0] = NET_PACKET_ANNOUNCE_RESPONSE; |
371 | memcpy(data + 1, plain + ONION_PING_ID_SIZE + crypto_box_PUBLICKEYBYTES + crypto_box_PUBLICKEYBYTES, | 395 | memcpy(data + 1, plain + ONION_PING_ID_SIZE + crypto_box_PUBLICKEYBYTES + crypto_box_PUBLICKEYBYTES, |
@@ -374,8 +398,9 @@ static int handle_announce_request(void *object, IP_Port source, const uint8_t * | |||
374 | 398 | ||
375 | if (send_onion_response(onion_a->net, source, data, | 399 | if (send_onion_response(onion_a->net, source, data, |
376 | 1 + ONION_ANNOUNCE_SENDBACK_DATA_LENGTH + crypto_box_NONCEBYTES + len, | 400 | 1 + ONION_ANNOUNCE_SENDBACK_DATA_LENGTH + crypto_box_NONCEBYTES + len, |
377 | packet + (ANNOUNCE_REQUEST_SIZE_RECV - ONION_RETURN_3)) == -1) | 401 | packet + (ANNOUNCE_REQUEST_SIZE_RECV - ONION_RETURN_3)) == -1) { |
378 | return 1; | 402 | return 1; |
403 | } | ||
379 | 404 | ||
380 | return 0; | 405 | return 0; |
381 | } | 406 | } |
@@ -384,37 +409,43 @@ static int handle_data_request(void *object, IP_Port source, const uint8_t *pack | |||
384 | { | 409 | { |
385 | Onion_Announce *onion_a = object; | 410 | Onion_Announce *onion_a = object; |
386 | 411 | ||
387 | if (length <= DATA_REQUEST_MIN_SIZE_RECV) | 412 | if (length <= DATA_REQUEST_MIN_SIZE_RECV) { |
388 | return 1; | 413 | return 1; |
414 | } | ||
389 | 415 | ||
390 | if (length > ONION_MAX_PACKET_SIZE) | 416 | if (length > ONION_MAX_PACKET_SIZE) { |
391 | return 1; | 417 | return 1; |
418 | } | ||
392 | 419 | ||
393 | int index = in_entries(onion_a, packet + 1); | 420 | int index = in_entries(onion_a, packet + 1); |
394 | 421 | ||
395 | if (index == -1) | 422 | if (index == -1) { |
396 | return 1; | 423 | return 1; |
424 | } | ||
397 | 425 | ||
398 | uint8_t data[length - (crypto_box_PUBLICKEYBYTES + ONION_RETURN_3)]; | 426 | uint8_t data[length - (crypto_box_PUBLICKEYBYTES + ONION_RETURN_3)]; |
399 | data[0] = NET_PACKET_ONION_DATA_RESPONSE; | 427 | data[0] = NET_PACKET_ONION_DATA_RESPONSE; |
400 | memcpy(data + 1, packet + 1 + crypto_box_PUBLICKEYBYTES, length - (1 + crypto_box_PUBLICKEYBYTES + ONION_RETURN_3)); | 428 | memcpy(data + 1, packet + 1 + crypto_box_PUBLICKEYBYTES, length - (1 + crypto_box_PUBLICKEYBYTES + ONION_RETURN_3)); |
401 | 429 | ||
402 | if (send_onion_response(onion_a->net, onion_a->entries[index].ret_ip_port, data, sizeof(data), | 430 | if (send_onion_response(onion_a->net, onion_a->entries[index].ret_ip_port, data, sizeof(data), |
403 | onion_a->entries[index].ret) == -1) | 431 | onion_a->entries[index].ret) == -1) { |
404 | return 1; | 432 | return 1; |
433 | } | ||
405 | 434 | ||
406 | return 0; | 435 | return 0; |
407 | } | 436 | } |
408 | 437 | ||
409 | Onion_Announce *new_onion_announce(DHT *dht) | 438 | Onion_Announce *new_onion_announce(DHT *dht) |
410 | { | 439 | { |
411 | if (dht == NULL) | 440 | if (dht == NULL) { |
412 | return NULL; | 441 | return NULL; |
442 | } | ||
413 | 443 | ||
414 | Onion_Announce *onion_a = calloc(1, sizeof(Onion_Announce)); | 444 | Onion_Announce *onion_a = calloc(1, sizeof(Onion_Announce)); |
415 | 445 | ||
416 | if (onion_a == NULL) | 446 | if (onion_a == NULL) { |
417 | return NULL; | 447 | return NULL; |
448 | } | ||
418 | 449 | ||
419 | onion_a->dht = dht; | 450 | onion_a->dht = dht; |
420 | onion_a->net = dht->net; | 451 | onion_a->net = dht->net; |
@@ -428,8 +459,9 @@ Onion_Announce *new_onion_announce(DHT *dht) | |||
428 | 459 | ||
429 | void kill_onion_announce(Onion_Announce *onion_a) | 460 | void kill_onion_announce(Onion_Announce *onion_a) |
430 | { | 461 | { |
431 | if (onion_a == NULL) | 462 | if (onion_a == NULL) { |
432 | return; | 463 | return; |
464 | } | ||
433 | 465 | ||
434 | networking_registerhandler(onion_a->net, NET_PACKET_ANNOUNCE_REQUEST, NULL, NULL); | 466 | networking_registerhandler(onion_a->net, NET_PACKET_ANNOUNCE_REQUEST, NULL, NULL); |
435 | networking_registerhandler(onion_a->net, NET_PACKET_ONION_DATA_REQUEST, NULL, NULL); | 467 | networking_registerhandler(onion_a->net, NET_PACKET_ONION_DATA_REQUEST, NULL, NULL); |