diff options
author | charmlesscoin <charmlesscoin@gmail.com> | 2013-08-05 16:11:37 -0400 |
---|---|---|
committer | charmlesscoin <charmlesscoin@gmail.com> | 2013-08-05 16:11:37 -0400 |
commit | d92550506604fcff8164a6dce221f0e4be6adda6 (patch) | |
tree | f386f8a7ad2320af058f8554f2e40b1319bbfd50 /core | |
parent | 1b6c16f7ff57624bee1594f31b057609d52dbea6 (diff) | |
parent | f0397ebb2b85100e2ac1b2d3a377ba012ab53240 (diff) |
Merge branch 'master' of git://github.com/irungentoo/ProjectTox-Core
Diffstat (limited to 'core')
-rw-r--r-- | core/CMakeLists.txt | 19 | ||||
-rw-r--r-- | core/DHT.c | 56 | ||||
-rw-r--r-- | core/DHT.h | 4 | ||||
-rw-r--r-- | core/LAN_discovery.c | 8 | ||||
-rw-r--r-- | core/Lossless_UDP.c | 44 | ||||
-rw-r--r-- | core/Lossless_UDP.h | 4 | ||||
-rw-r--r-- | core/Messenger.c | 16 | ||||
-rw-r--r-- | core/Messenger.h | 6 | ||||
-rw-r--r-- | core/net_crypto.c | 22 | ||||
-rw-r--r-- | core/net_crypto.h | 6 | ||||
-rw-r--r-- | core/network.c | 6 | ||||
-rw-r--r-- | core/network.h | 6 |
12 files changed, 100 insertions, 97 deletions
diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 5bd496cb..eacb772c 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt | |||
@@ -1,12 +1,6 @@ | |||
1 | cmake_minimum_required(VERSION 2.6.0) | 1 | cmake_minimum_required(VERSION 2.6.0) |
2 | project(toxcore C) | 2 | project(toxcore C) |
3 | 3 | ||
4 | if(WIN32) | ||
5 | include_directories(${CMAKE_HOME_DIRECTORY}/sodium/include/) | ||
6 | else(WIN32) | ||
7 | include_directories(${SODIUM_INCLUDE_DIR}) | ||
8 | endif() | ||
9 | |||
10 | set(core_sources | 4 | set(core_sources |
11 | DHT.c | 5 | DHT.c |
12 | network.c | 6 | network.c |
@@ -16,5 +10,14 @@ set(core_sources | |||
16 | LAN_discovery.c | 10 | LAN_discovery.c |
17 | Messenger.c) | 11 | Messenger.c) |
18 | 12 | ||
19 | add_library(toxcore SHARED ${core_sources}) | 13 | if(SHARED_TOXCORE) |
20 | target_link_libraries(toxcore ${SODIUM_LIBRARY}) | 14 | add_library(toxcore SHARED ${core_sources}) |
15 | else() | ||
16 | add_library(toxcore ${core_sources}) | ||
17 | endif() | ||
18 | |||
19 | target_link_libraries(toxcore ${LINK_CRYPTO_LIBRARY}) | ||
20 | |||
21 | if(WIN32) | ||
22 | target_link_libraries(toxcore ws2_32) | ||
23 | endif() | ||
@@ -119,7 +119,7 @@ static Pinged send_nodes[LSEND_NODES_ARRAY]; | |||
119 | * return 1 if client_id1 is closer | 119 | * return 1 if client_id1 is closer |
120 | * return 2 if client_id2 is closer | 120 | * return 2 if client_id2 is closer |
121 | */ | 121 | */ |
122 | int id_closest(uint8_t * id, uint8_t * id1, uint8_t * id2) | 122 | static int id_closest(uint8_t * id, uint8_t * id1, uint8_t * id2) |
123 | { | 123 | { |
124 | size_t i; | 124 | size_t i; |
125 | uint8_t distance1, distance2; | 125 | uint8_t distance1, distance2; |
@@ -137,17 +137,17 @@ int id_closest(uint8_t * id, uint8_t * id1, uint8_t * id2) | |||
137 | return 0; | 137 | return 0; |
138 | } | 138 | } |
139 | 139 | ||
140 | int ipport_equal(IP_Port a, IP_Port b) | 140 | static int ipport_equal(IP_Port a, IP_Port b) |
141 | { | 141 | { |
142 | return (a.ip.i == b.ip.i) && (a.port == b.port); | 142 | return (a.ip.i == b.ip.i) && (a.port == b.port); |
143 | } | 143 | } |
144 | 144 | ||
145 | int id_equal(uint8_t* a, uint8_t* b) | 145 | static int id_equal(uint8_t* a, uint8_t* b) |
146 | { | 146 | { |
147 | return memcmp(a, b, CLIENT_ID_SIZE) == 0; | 147 | return memcmp(a, b, CLIENT_ID_SIZE) == 0; |
148 | } | 148 | } |
149 | 149 | ||
150 | int is_timeout(uint64_t time_now, uint64_t timestamp, uint64_t timeout) | 150 | static int is_timeout(uint64_t time_now, uint64_t timestamp, uint64_t timeout) |
151 | { | 151 | { |
152 | return timestamp + timeout <= time_now; | 152 | return timestamp + timeout <= time_now; |
153 | } | 153 | } |
@@ -159,7 +159,7 @@ int is_timeout(uint64_t time_now, uint64_t timestamp, uint64_t timeout) | |||
159 | * | 159 | * |
160 | * TODO: maybe optimize this. | 160 | * TODO: maybe optimize this. |
161 | */ | 161 | */ |
162 | int client_in_list(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port) | 162 | static int client_in_list(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port) |
163 | { | 163 | { |
164 | uint32_t i; | 164 | uint32_t i; |
165 | uint64_t temp_time = unix_time(); | 165 | uint64_t temp_time = unix_time(); |
@@ -184,7 +184,7 @@ int client_in_list(Client_data * list, uint32_t length, uint8_t * client_id, IP_ | |||
184 | /* check if client with client_id is already in node format list of length length. | 184 | /* check if client with client_id is already in node format list of length length. |
185 | * return True(1) or False(0) | 185 | * return True(1) or False(0) |
186 | */ | 186 | */ |
187 | int client_in_nodelist(Node_format * list, uint32_t length, uint8_t * client_id) | 187 | static int client_in_nodelist(Node_format * list, uint32_t length, uint8_t * client_id) |
188 | { | 188 | { |
189 | uint32_t i; | 189 | uint32_t i; |
190 | 190 | ||
@@ -215,7 +215,7 @@ static int friend_number(uint8_t * client_id) | |||
215 | * | 215 | * |
216 | * TODO: For the love of based Allah make this function cleaner and much more efficient. | 216 | * TODO: For the love of based Allah make this function cleaner and much more efficient. |
217 | */ | 217 | */ |
218 | int get_close_nodes(uint8_t * client_id, Node_format * nodes_list) | 218 | static int get_close_nodes(uint8_t * client_id, Node_format * nodes_list) |
219 | { | 219 | { |
220 | uint32_t i, j, k; | 220 | uint32_t i, j, k; |
221 | uint64_t temp_time = unix_time(); | 221 | uint64_t temp_time = unix_time(); |
@@ -301,7 +301,7 @@ int get_close_nodes(uint8_t * client_id, Node_format * nodes_list) | |||
301 | * return 0 if successful | 301 | * return 0 if successful |
302 | * return 1 if not (list contains no bad nodes) | 302 | * return 1 if not (list contains no bad nodes) |
303 | */ | 303 | */ |
304 | int replace_bad( Client_data * list, | 304 | static int replace_bad( Client_data * list, |
305 | uint32_t length, | 305 | uint32_t length, |
306 | uint8_t * client_id, | 306 | uint8_t * client_id, |
307 | IP_Port ip_port ) | 307 | IP_Port ip_port ) |
@@ -325,7 +325,7 @@ int replace_bad( Client_data * list, | |||
325 | } | 325 | } |
326 | 326 | ||
327 | /* replace the first good node that is further to the comp_client_id than that of the client_id in the list */ | 327 | /* replace the first good node that is further to the comp_client_id than that of the client_id in the list */ |
328 | int replace_good( Client_data * list, | 328 | static int replace_good( Client_data * list, |
329 | uint32_t length, | 329 | uint32_t length, |
330 | uint8_t * client_id, | 330 | uint8_t * client_id, |
331 | IP_Port ip_port, | 331 | IP_Port ip_port, |
@@ -351,7 +351,7 @@ int replace_good( Client_data * list, | |||
351 | /* Attempt to add client with ip_port and client_id to the friends client list | 351 | /* Attempt to add client with ip_port and client_id to the friends client list |
352 | * and close_clientlist | 352 | * and close_clientlist |
353 | */ | 353 | */ |
354 | void addto_lists(IP_Port ip_port, uint8_t * client_id) | 354 | static void addto_lists(IP_Port ip_port, uint8_t * client_id) |
355 | { | 355 | { |
356 | uint32_t i; | 356 | uint32_t i; |
357 | 357 | ||
@@ -393,7 +393,7 @@ void addto_lists(IP_Port ip_port, uint8_t * client_id) | |||
393 | /* If client_id is a friend or us, update ret_ip_port | 393 | /* If client_id is a friend or us, update ret_ip_port |
394 | * nodeclient_id is the id of the node that sent us this info | 394 | * nodeclient_id is the id of the node that sent us this info |
395 | */ | 395 | */ |
396 | void returnedip_ports(IP_Port ip_port, uint8_t * client_id, uint8_t * nodeclient_id) | 396 | static void returnedip_ports(IP_Port ip_port, uint8_t * client_id, uint8_t * nodeclient_id) |
397 | { | 397 | { |
398 | uint32_t i, j; | 398 | uint32_t i, j; |
399 | uint64_t temp_time = unix_time(); | 399 | uint64_t temp_time = unix_time(); |
@@ -431,7 +431,7 @@ void returnedip_ports(IP_Port ip_port, uint8_t * client_id, uint8_t * nodeclient | |||
431 | * | 431 | * |
432 | * TODO: optimize this | 432 | * TODO: optimize this |
433 | */ | 433 | */ |
434 | int is_pinging(IP_Port ip_port, uint64_t ping_id) | 434 | static int is_pinging(IP_Port ip_port, uint64_t ping_id) |
435 | { | 435 | { |
436 | uint32_t i; | 436 | uint32_t i; |
437 | uint8_t pinging; | 437 | uint8_t pinging; |
@@ -456,7 +456,7 @@ int is_pinging(IP_Port ip_port, uint64_t ping_id) | |||
456 | } | 456 | } |
457 | 457 | ||
458 | /* Same as last function but for get_node requests. */ | 458 | /* Same as last function but for get_node requests. */ |
459 | int is_gettingnodes(IP_Port ip_port, uint64_t ping_id) | 459 | static int is_gettingnodes(IP_Port ip_port, uint64_t ping_id) |
460 | { | 460 | { |
461 | uint32_t i; | 461 | uint32_t i; |
462 | uint8_t pinging; | 462 | uint8_t pinging; |
@@ -486,7 +486,7 @@ int is_gettingnodes(IP_Port ip_port, uint64_t ping_id) | |||
486 | * | 486 | * |
487 | * TODO: optimize this | 487 | * TODO: optimize this |
488 | */ | 488 | */ |
489 | uint64_t add_pinging(IP_Port ip_port) | 489 | static uint64_t add_pinging(IP_Port ip_port) |
490 | { | 490 | { |
491 | uint32_t i, j; | 491 | uint32_t i, j; |
492 | uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int(); | 492 | uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int(); |
@@ -507,7 +507,7 @@ uint64_t add_pinging(IP_Port ip_port) | |||
507 | } | 507 | } |
508 | 508 | ||
509 | /* Same but for get node requests */ | 509 | /* Same but for get node requests */ |
510 | uint64_t add_gettingnodes(IP_Port ip_port) | 510 | static uint64_t add_gettingnodes(IP_Port ip_port) |
511 | { | 511 | { |
512 | uint32_t i, j; | 512 | uint32_t i, j; |
513 | uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int(); | 513 | uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int(); |
@@ -676,7 +676,7 @@ static int sendnodes(IP_Port ip_port, uint8_t * public_key, uint8_t * client_id, | |||
676 | /* Packet handling functions, one to handle each types of packets we receive | 676 | /* Packet handling functions, one to handle each types of packets we receive |
677 | * Returns 0 if handled correctly, 1 if packet is bad. | 677 | * Returns 0 if handled correctly, 1 if packet is bad. |
678 | */ | 678 | */ |
679 | int handle_pingreq(uint8_t * packet, uint32_t length, IP_Port source) | 679 | static int handle_pingreq(uint8_t * packet, uint32_t length, IP_Port source) |
680 | { | 680 | { |
681 | uint64_t ping_id; | 681 | uint64_t ping_id; |
682 | if(length != 1 + CLIENT_ID_SIZE + crypto_box_NONCEBYTES + sizeof(ping_id) + ENCRYPTION_PADDING) | 682 | if(length != 1 + CLIENT_ID_SIZE + crypto_box_NONCEBYTES + sizeof(ping_id) + ENCRYPTION_PADDING) |
@@ -702,7 +702,7 @@ int handle_pingreq(uint8_t * packet, uint32_t length, IP_Port source) | |||
702 | return 0; | 702 | return 0; |
703 | } | 703 | } |
704 | 704 | ||
705 | int handle_pingres(uint8_t * packet, uint32_t length, IP_Port source) | 705 | static int handle_pingres(uint8_t * packet, uint32_t length, IP_Port source) |
706 | { | 706 | { |
707 | uint64_t ping_id; | 707 | uint64_t ping_id; |
708 | if(length != 1 + CLIENT_ID_SIZE + crypto_box_NONCEBYTES + sizeof(ping_id) + ENCRYPTION_PADDING) | 708 | if(length != 1 + CLIENT_ID_SIZE + crypto_box_NONCEBYTES + sizeof(ping_id) + ENCRYPTION_PADDING) |
@@ -729,7 +729,7 @@ int handle_pingres(uint8_t * packet, uint32_t length, IP_Port source) | |||
729 | return 1; | 729 | return 1; |
730 | } | 730 | } |
731 | 731 | ||
732 | int handle_getnodes(uint8_t * packet, uint32_t length, IP_Port source) | 732 | static int handle_getnodes(uint8_t * packet, uint32_t length, IP_Port source) |
733 | { | 733 | { |
734 | uint64_t ping_id; | 734 | uint64_t ping_id; |
735 | 735 | ||
@@ -761,7 +761,7 @@ int handle_getnodes(uint8_t * packet, uint32_t length, IP_Port source) | |||
761 | return 0; | 761 | return 0; |
762 | } | 762 | } |
763 | 763 | ||
764 | int handle_sendnodes(uint8_t * packet, uint32_t length, IP_Port source) | 764 | static int handle_sendnodes(uint8_t * packet, uint32_t length, IP_Port source) |
765 | { | 765 | { |
766 | uint64_t ping_id; | 766 | uint64_t ping_id; |
767 | uint32_t cid_size = 1 + CLIENT_ID_SIZE; | 767 | uint32_t cid_size = 1 + CLIENT_ID_SIZE; |
@@ -873,7 +873,7 @@ IP_Port DHT_getfriendip(uint8_t * client_id) | |||
873 | /* Ping each client in the "friends" list every 60 seconds. Send a get nodes request | 873 | /* Ping each client in the "friends" list every 60 seconds. Send a get nodes request |
874 | * every 20 seconds to a random good node for each "friend" in our "friends" list. | 874 | * every 20 seconds to a random good node for each "friend" in our "friends" list. |
875 | */ | 875 | */ |
876 | void doDHTFriends() | 876 | static void doDHTFriends(void) |
877 | { | 877 | { |
878 | uint32_t i, j; | 878 | uint32_t i, j; |
879 | uint64_t temp_time = unix_time(); | 879 | uint64_t temp_time = unix_time(); |
@@ -912,7 +912,7 @@ static uint64_t close_lastgetnodes; | |||
912 | /* Ping each client in the close nodes list every 60 seconds. | 912 | /* Ping each client in the close nodes list every 60 seconds. |
913 | * Send a get nodes request every 20 seconds to a random good node in the list. | 913 | * Send a get nodes request every 20 seconds to a random good node in the list. |
914 | */ | 914 | */ |
915 | void doClose() | 915 | static void doClose(void) |
916 | { | 916 | { |
917 | uint32_t i; | 917 | uint32_t i; |
918 | uint64_t temp_time = unix_time(); | 918 | uint64_t temp_time = unix_time(); |
@@ -1029,7 +1029,7 @@ int route_tofriend(uint8_t * friend_id, uint8_t * packet, uint32_t length) | |||
1029 | /* Send the following packet to one random person who tells us they are connected to friend_id | 1029 | /* Send the following packet to one random person who tells us they are connected to friend_id |
1030 | * returns the number of nodes it sent the packet to | 1030 | * returns the number of nodes it sent the packet to |
1031 | */ | 1031 | */ |
1032 | int routeone_tofriend(uint8_t * friend_id, uint8_t * packet, uint32_t length) | 1032 | static int routeone_tofriend(uint8_t * friend_id, uint8_t * packet, uint32_t length) |
1033 | { | 1033 | { |
1034 | int num = friend_number(friend_id); | 1034 | int num = friend_number(friend_id); |
1035 | if (num == -1) | 1035 | if (num == -1) |
@@ -1079,7 +1079,7 @@ int friend_ips(IP_Port * ip_portlist, uint8_t * friend_id) | |||
1079 | /*----------------------------------------------------------------------------------*/ | 1079 | /*----------------------------------------------------------------------------------*/ |
1080 | /*---------------------BEGINNING OF NAT PUNCHING FUNCTIONS--------------------------*/ | 1080 | /*---------------------BEGINNING OF NAT PUNCHING FUNCTIONS--------------------------*/ |
1081 | 1081 | ||
1082 | int send_NATping(uint8_t * public_key, uint64_t ping_id, uint8_t type) | 1082 | static int send_NATping(uint8_t * public_key, uint64_t ping_id, uint8_t type) |
1083 | { | 1083 | { |
1084 | uint8_t data[sizeof(uint64_t) + 1]; | 1084 | uint8_t data[sizeof(uint64_t) + 1]; |
1085 | uint8_t packet[MAX_DATA_SIZE]; | 1085 | uint8_t packet[MAX_DATA_SIZE]; |
@@ -1105,7 +1105,7 @@ int send_NATping(uint8_t * public_key, uint64_t ping_id, uint8_t type) | |||
1105 | } | 1105 | } |
1106 | 1106 | ||
1107 | /* Handle a recieved ping request for */ | 1107 | /* Handle a recieved ping request for */ |
1108 | int handle_NATping(uint8_t * packet, uint32_t length, IP_Port source) | 1108 | static int handle_NATping(uint8_t * packet, uint32_t length, IP_Port source) |
1109 | { | 1109 | { |
1110 | if (length < crypto_box_PUBLICKEYBYTES * 2 + crypto_box_NONCEBYTES + ENCRYPTION_PADDING | 1110 | if (length < crypto_box_PUBLICKEYBYTES * 2 + crypto_box_NONCEBYTES + ENCRYPTION_PADDING |
1111 | && length > MAX_DATA_SIZE + ENCRYPTION_PADDING) | 1111 | && length > MAX_DATA_SIZE + ENCRYPTION_PADDING) |
@@ -1211,7 +1211,7 @@ static void punch_holes(IP ip, uint16_t * port_list, uint16_t numports, uint16_t | |||
1211 | friends_list[friend_num].punching_index = i; | 1211 | friends_list[friend_num].punching_index = i; |
1212 | } | 1212 | } |
1213 | 1213 | ||
1214 | static void doNAT() | 1214 | static void doNAT(void) |
1215 | { | 1215 | { |
1216 | uint32_t i; | 1216 | uint32_t i; |
1217 | uint64_t temp_time = unix_time(); | 1217 | uint64_t temp_time = unix_time(); |
@@ -1275,7 +1275,7 @@ int DHT_handlepacket(uint8_t * packet, uint32_t length, IP_Port source) | |||
1275 | return 0; | 1275 | return 0; |
1276 | } | 1276 | } |
1277 | 1277 | ||
1278 | void doDHT() | 1278 | void doDHT(void) |
1279 | { | 1279 | { |
1280 | doClose(); | 1280 | doClose(); |
1281 | doDHTFriends(); | 1281 | doDHTFriends(); |
@@ -1283,7 +1283,7 @@ void doDHT() | |||
1283 | } | 1283 | } |
1284 | 1284 | ||
1285 | /* get the size of the DHT (for saving) */ | 1285 | /* get the size of the DHT (for saving) */ |
1286 | uint32_t DHT_size() | 1286 | uint32_t DHT_size(void) |
1287 | { | 1287 | { |
1288 | return sizeof(close_clientlist) + sizeof(Friend) * num_friends; | 1288 | return sizeof(close_clientlist) + sizeof(Friend) * num_friends; |
1289 | } | 1289 | } |
@@ -1341,7 +1341,7 @@ int DHT_load(uint8_t * data, uint32_t size) | |||
1341 | /* returns 0 if we are not connected to the DHT | 1341 | /* returns 0 if we are not connected to the DHT |
1342 | * returns 1 if we are | 1342 | * returns 1 if we are |
1343 | */ | 1343 | */ |
1344 | int DHT_isconnected() | 1344 | int DHT_isconnected(void) |
1345 | { | 1345 | { |
1346 | uint32_t i; | 1346 | uint32_t i; |
1347 | uint64_t temp_time = unix_time(); | 1347 | uint64_t temp_time = unix_time(); |
@@ -58,7 +58,7 @@ int DHT_delfriend(uint8_t *client_id); | |||
58 | IP_Port DHT_getfriendip(uint8_t *client_id); | 58 | IP_Port DHT_getfriendip(uint8_t *client_id); |
59 | 59 | ||
60 | /* Run this function at least a couple times per second (It's the main loop) */ | 60 | /* Run this function at least a couple times per second (It's the main loop) */ |
61 | void doDHT(); | 61 | void doDHT(void); |
62 | 62 | ||
63 | /* if we receive a DHT packet we call this function so it can be handled. | 63 | /* if we receive a DHT packet we call this function so it can be handled. |
64 | return 0 if packet is handled correctly. | 64 | return 0 if packet is handled correctly. |
@@ -90,7 +90,7 @@ int friend_ips(IP_Port *ip_portlist, uint8_t *friend_id); | |||
90 | /* SAVE/LOAD functions */ | 90 | /* SAVE/LOAD functions */ |
91 | 91 | ||
92 | /* get the size of the DHT (for saving) */ | 92 | /* get the size of the DHT (for saving) */ |
93 | uint32_t DHT_size(); | 93 | uint32_t DHT_size(void); |
94 | 94 | ||
95 | /* save the DHT in data where data is an array of size DHT_size() */ | 95 | /* save the DHT in data where data is an array of size DHT_size() */ |
96 | void DHT_save(uint8_t *data); | 96 | void DHT_save(uint8_t *data); |
diff --git a/core/LAN_discovery.c b/core/LAN_discovery.c index 72e00d32..55953685 100644 --- a/core/LAN_discovery.c +++ b/core/LAN_discovery.c | |||
@@ -29,7 +29,7 @@ | |||
29 | /* get the first working broadcast address that's not from "lo" | 29 | /* get the first working broadcast address that's not from "lo" |
30 | * returns higher than 0 on success | 30 | * returns higher than 0 on success |
31 | * returns 0 on error */ | 31 | * returns 0 on error */ |
32 | uint32_t get_broadcast(void) | 32 | static uint32_t get_broadcast(void) |
33 | { | 33 | { |
34 | /* not sure how many platforms this will | 34 | /* not sure how many platforms this will |
35 | * run on, so it's wrapped in __linux for now */ | 35 | * run on, so it's wrapped in __linux for now */ |
@@ -76,7 +76,7 @@ uint32_t get_broadcast(void) | |||
76 | #endif | 76 | #endif |
77 | 77 | ||
78 | /* Return the broadcast ip */ | 78 | /* Return the broadcast ip */ |
79 | IP broadcast_ip() | 79 | static IP broadcast_ip(void) |
80 | { | 80 | { |
81 | IP ip; | 81 | IP ip; |
82 | #ifdef __linux | 82 | #ifdef __linux |
@@ -92,7 +92,7 @@ IP broadcast_ip() | |||
92 | 92 | ||
93 | /*return 0 if ip is a LAN ip | 93 | /*return 0 if ip is a LAN ip |
94 | return -1 if it is not */ | 94 | return -1 if it is not */ |
95 | int LAN_ip(IP ip) | 95 | static int LAN_ip(IP ip) |
96 | { | 96 | { |
97 | if (ip.c[0] == 127)/* Loopback */ | 97 | if (ip.c[0] == 127)/* Loopback */ |
98 | return 0; | 98 | return 0; |
@@ -107,7 +107,7 @@ int LAN_ip(IP ip) | |||
107 | return -1; | 107 | return -1; |
108 | } | 108 | } |
109 | 109 | ||
110 | int handle_LANdiscovery(uint8_t *packet, uint32_t length, IP_Port source) | 110 | static int handle_LANdiscovery(uint8_t *packet, uint32_t length, IP_Port source) |
111 | { | 111 | { |
112 | if (LAN_ip(source.ip) == -1) | 112 | if (LAN_ip(source.ip) == -1) |
113 | return 1; | 113 | return 1; |
diff --git a/core/Lossless_UDP.c b/core/Lossless_UDP.c index a753e5ff..3a289735 100644 --- a/core/Lossless_UDP.c +++ b/core/Lossless_UDP.c | |||
@@ -149,7 +149,7 @@ static uint32_t randtable[6][256]; | |||
149 | * | 149 | * |
150 | * TODO: make this better | 150 | * TODO: make this better |
151 | */ | 151 | */ |
152 | uint32_t handshake_id(IP_Port source) | 152 | static uint32_t handshake_id(IP_Port source) |
153 | { | 153 | { |
154 | uint32_t id = 0, i; | 154 | uint32_t id = 0, i; |
155 | for (i = 0; i < 6; ++i) { | 155 | for (i = 0; i < 6; ++i) { |
@@ -168,7 +168,7 @@ uint32_t handshake_id(IP_Port source) | |||
168 | * | 168 | * |
169 | * TODO: make this better | 169 | * TODO: make this better |
170 | */ | 170 | */ |
171 | void change_handshake(IP_Port source) | 171 | static void change_handshake(IP_Port source) |
172 | { | 172 | { |
173 | uint8_t rand = random_int() % 4; | 173 | uint8_t rand = random_int() % 4; |
174 | randtable[rand][((uint8_t *)&source)[rand]] = random_int(); | 174 | randtable[rand][((uint8_t *)&source)[rand]] = random_int(); |
@@ -234,7 +234,7 @@ int new_connection(IP_Port ip_port) | |||
234 | * Returns an integer corresponding to the connection id. | 234 | * Returns an integer corresponding to the connection id. |
235 | * Return -1 if it could not initialize the connection. | 235 | * Return -1 if it could not initialize the connection. |
236 | */ | 236 | */ |
237 | int new_inconnection(IP_Port ip_port) | 237 | static int new_inconnection(IP_Port ip_port) |
238 | { | 238 | { |
239 | if (getconnection_id(ip_port) != -1) | 239 | if (getconnection_id(ip_port) != -1) |
240 | return -1; | 240 | return -1; |
@@ -284,7 +284,7 @@ int new_inconnection(IP_Port ip_port) | |||
284 | * Returns an integer corresponding to the next connection in our incoming connection list. | 284 | * Returns an integer corresponding to the next connection in our incoming connection list. |
285 | * Return -1 if there are no new incoming connections in the list. | 285 | * Return -1 if there are no new incoming connections in the list. |
286 | */ | 286 | */ |
287 | int incoming_connection() | 287 | int incoming_connection(void) |
288 | { | 288 | { |
289 | uint32_t i; | 289 | uint32_t i; |
290 | for (i = 0; i < MAX_CONNECTIONS; ++i) { | 290 | for (i = 0; i < MAX_CONNECTIONS; ++i) { |
@@ -298,7 +298,7 @@ int incoming_connection() | |||
298 | } | 298 | } |
299 | 299 | ||
300 | /* Try to free some memory from the connections array. */ | 300 | /* Try to free some memory from the connections array. */ |
301 | static void free_connections() | 301 | static void free_connections(void) |
302 | { | 302 | { |
303 | uint32_t i; | 303 | uint32_t i; |
304 | for(i = connections_length; i != 0; --i) | 304 | for(i = connections_length; i != 0; --i) |
@@ -470,7 +470,7 @@ uint32_t missing_packets(int connection_id, uint32_t * requested) | |||
470 | * see http://wiki.tox.im/index.php/Lossless_UDP for more information. | 470 | * see http://wiki.tox.im/index.php/Lossless_UDP for more information. |
471 | */ | 471 | */ |
472 | 472 | ||
473 | int send_handshake(IP_Port ip_port, uint32_t handshake_id1, uint32_t handshake_id2) | 473 | static int send_handshake(IP_Port ip_port, uint32_t handshake_id1, uint32_t handshake_id2) |
474 | { | 474 | { |
475 | uint8_t packet[1 + 4 + 4]; | 475 | uint8_t packet[1 + 4 + 4]; |
476 | uint32_t temp; | 476 | uint32_t temp; |
@@ -484,7 +484,7 @@ int send_handshake(IP_Port ip_port, uint32_t handshake_id1, uint32_t handshake_i | |||
484 | return sendpacket(ip_port, packet, sizeof(packet)); | 484 | return sendpacket(ip_port, packet, sizeof(packet)); |
485 | } | 485 | } |
486 | 486 | ||
487 | int send_SYNC(uint32_t connection_id) | 487 | static int send_SYNC(uint32_t connection_id) |
488 | { | 488 | { |
489 | uint8_t packet[(BUFFER_PACKET_NUM*4 + 4 + 4 + 2)]; | 489 | uint8_t packet[(BUFFER_PACKET_NUM*4 + 4 + 4 + 2)]; |
490 | uint16_t index = 0; | 490 | uint16_t index = 0; |
@@ -511,7 +511,7 @@ int send_SYNC(uint32_t connection_id) | |||
511 | 511 | ||
512 | } | 512 | } |
513 | 513 | ||
514 | int send_data_packet(uint32_t connection_id, uint32_t packet_num) | 514 | static int send_data_packet(uint32_t connection_id, uint32_t packet_num) |
515 | { | 515 | { |
516 | uint32_t index = packet_num % MAX_QUEUE_NUM; | 516 | uint32_t index = packet_num % MAX_QUEUE_NUM; |
517 | uint32_t temp; | 517 | uint32_t temp; |
@@ -526,7 +526,7 @@ int send_data_packet(uint32_t connection_id, uint32_t packet_num) | |||
526 | } | 526 | } |
527 | 527 | ||
528 | /* sends 1 data packet */ | 528 | /* sends 1 data packet */ |
529 | int send_DATA(uint32_t connection_id) | 529 | static int send_DATA(uint32_t connection_id) |
530 | { | 530 | { |
531 | int ret; | 531 | int ret; |
532 | uint32_t buffer[BUFFER_PACKET_NUM]; | 532 | uint32_t buffer[BUFFER_PACKET_NUM]; |
@@ -555,7 +555,7 @@ int send_DATA(uint32_t connection_id) | |||
555 | 555 | ||
556 | 556 | ||
557 | /* Return 0 if handled correctly, 1 if packet is bad. */ | 557 | /* Return 0 if handled correctly, 1 if packet is bad. */ |
558 | int handle_handshake(uint8_t * packet, uint32_t length, IP_Port source) | 558 | static int handle_handshake(uint8_t * packet, uint32_t length, IP_Port source) |
559 | { | 559 | { |
560 | if (length != (1 + 4 + 4)) | 560 | if (length != (1 + 4 + 4)) |
561 | return 1; | 561 | return 1; |
@@ -591,7 +591,7 @@ int handle_handshake(uint8_t * packet, uint32_t length, IP_Port source) | |||
591 | } | 591 | } |
592 | 592 | ||
593 | /* returns 1 if sync packet is valid 0 if not. */ | 593 | /* returns 1 if sync packet is valid 0 if not. */ |
594 | int SYNC_valid(uint32_t length) | 594 | static int SYNC_valid(uint32_t length) |
595 | { | 595 | { |
596 | if (length < 4 + 4 + 2) | 596 | if (length < 4 + 4 + 2) |
597 | return 0; | 597 | return 0; |
@@ -602,7 +602,7 @@ int SYNC_valid(uint32_t length) | |||
602 | } | 602 | } |
603 | 603 | ||
604 | /* case 1 in handle_SYNC: */ | 604 | /* case 1 in handle_SYNC: */ |
605 | int handle_SYNC1(IP_Port source, uint32_t recv_packetnum, uint32_t sent_packetnum) | 605 | static int handle_SYNC1(IP_Port source, uint32_t recv_packetnum, uint32_t sent_packetnum) |
606 | { | 606 | { |
607 | if (handshake_id(source) == recv_packetnum) { | 607 | if (handshake_id(source) == recv_packetnum) { |
608 | int x = new_inconnection(source); | 608 | int x = new_inconnection(source); |
@@ -622,7 +622,7 @@ int handle_SYNC1(IP_Port source, uint32_t recv_packetnum, uint32_t sent_packetnu | |||
622 | } | 622 | } |
623 | 623 | ||
624 | /* case 2 in handle_SYNC: */ | 624 | /* case 2 in handle_SYNC: */ |
625 | int handle_SYNC2(int connection_id, uint8_t counter, uint32_t recv_packetnum, uint32_t sent_packetnum) | 625 | static int handle_SYNC2(int connection_id, uint8_t counter, uint32_t recv_packetnum, uint32_t sent_packetnum) |
626 | { | 626 | { |
627 | if (recv_packetnum == connections[connection_id].orecv_packetnum) { | 627 | if (recv_packetnum == connections[connection_id].orecv_packetnum) { |
628 | /* && sent_packetnum == connections[connection_id].osent_packetnum) */ | 628 | /* && sent_packetnum == connections[connection_id].osent_packetnum) */ |
@@ -635,7 +635,7 @@ int handle_SYNC2(int connection_id, uint8_t counter, uint32_t recv_packetnum, ui | |||
635 | return 1; | 635 | return 1; |
636 | } | 636 | } |
637 | /* case 3 in handle_SYNC: */ | 637 | /* case 3 in handle_SYNC: */ |
638 | int handle_SYNC3(int connection_id, uint8_t counter, uint32_t recv_packetnum, uint32_t sent_packetnum, uint32_t * req_packets, | 638 | static int handle_SYNC3(int connection_id, uint8_t counter, uint32_t recv_packetnum, uint32_t sent_packetnum, uint32_t * req_packets, |
639 | uint16_t number) | 639 | uint16_t number) |
640 | { | 640 | { |
641 | uint8_t comp_counter = (counter - connections[connection_id].recv_counter ); | 641 | uint8_t comp_counter = (counter - connections[connection_id].recv_counter ); |
@@ -669,7 +669,7 @@ int handle_SYNC3(int connection_id, uint8_t counter, uint32_t recv_packetnum, ui | |||
669 | return 1; | 669 | return 1; |
670 | } | 670 | } |
671 | 671 | ||
672 | int handle_SYNC(uint8_t *packet, uint32_t length, IP_Port source) | 672 | static int handle_SYNC(uint8_t *packet, uint32_t length, IP_Port source) |
673 | { | 673 | { |
674 | 674 | ||
675 | if (!SYNC_valid(length)) | 675 | if (!SYNC_valid(length)) |
@@ -708,7 +708,7 @@ int handle_SYNC(uint8_t *packet, uint32_t length, IP_Port source) | |||
708 | * Add a packet to the received buffer and set the recv_packetnum of the | 708 | * Add a packet to the received buffer and set the recv_packetnum of the |
709 | * connection to its proper value. Return 1 if data was too big, 0 if not. | 709 | * connection to its proper value. Return 1 if data was too big, 0 if not. |
710 | */ | 710 | */ |
711 | int add_recv(int connection_id, uint32_t data_num, uint8_t *data, uint16_t size) | 711 | static int add_recv(int connection_id, uint32_t data_num, uint8_t *data, uint16_t size) |
712 | { | 712 | { |
713 | if (size > MAX_DATA_SIZE) | 713 | if (size > MAX_DATA_SIZE) |
714 | return 1; | 714 | return 1; |
@@ -742,7 +742,7 @@ int add_recv(int connection_id, uint32_t data_num, uint8_t *data, uint16_t size) | |||
742 | return 0; | 742 | return 0; |
743 | } | 743 | } |
744 | 744 | ||
745 | int handle_data(uint8_t *packet, uint32_t length, IP_Port source) | 745 | static int handle_data(uint8_t *packet, uint32_t length, IP_Port source) |
746 | { | 746 | { |
747 | int connection = getconnection_id(source); | 747 | int connection = getconnection_id(source); |
748 | 748 | ||
@@ -793,7 +793,7 @@ int LosslessUDP_handlepacket(uint8_t *packet, uint32_t length, IP_Port source) | |||
793 | * Send handshake requests | 793 | * Send handshake requests |
794 | * handshake packets are sent at the same rate as SYNC packets | 794 | * handshake packets are sent at the same rate as SYNC packets |
795 | */ | 795 | */ |
796 | void doNew() | 796 | static void doNew(void) |
797 | { | 797 | { |
798 | uint32_t i; | 798 | uint32_t i; |
799 | uint64_t temp_time = current_time(); | 799 | uint64_t temp_time = current_time(); |
@@ -817,7 +817,7 @@ void doNew() | |||
817 | } | 817 | } |
818 | } | 818 | } |
819 | 819 | ||
820 | void doSYNC() | 820 | static void doSYNC(void) |
821 | { | 821 | { |
822 | uint32_t i; | 822 | uint32_t i; |
823 | uint64_t temp_time = current_time(); | 823 | uint64_t temp_time = current_time(); |
@@ -830,7 +830,7 @@ void doSYNC() | |||
830 | } | 830 | } |
831 | } | 831 | } |
832 | 832 | ||
833 | void doData() | 833 | static void doData(void) |
834 | { | 834 | { |
835 | uint32_t i; | 835 | uint32_t i; |
836 | uint64_t j; | 836 | uint64_t j; |
@@ -851,7 +851,7 @@ void doData() | |||
851 | * | 851 | * |
852 | * TODO: flow control. | 852 | * TODO: flow control. |
853 | */ | 853 | */ |
854 | void adjustRates() | 854 | static void adjustRates(void) |
855 | { | 855 | { |
856 | uint32_t i; | 856 | uint32_t i; |
857 | uint64_t temp_time = current_time(); | 857 | uint64_t temp_time = current_time(); |
@@ -871,7 +871,7 @@ void adjustRates() | |||
871 | } | 871 | } |
872 | 872 | ||
873 | /* Call this function a couple times per second It's the main loop. */ | 873 | /* Call this function a couple times per second It's the main loop. */ |
874 | void doLossless_UDP() | 874 | void doLossless_UDP(void) |
875 | { | 875 | { |
876 | doNew(); | 876 | doNew(); |
877 | doSYNC(); | 877 | doSYNC(); |
diff --git a/core/Lossless_UDP.h b/core/Lossless_UDP.h index 75ef273e..b4cb186a 100644 --- a/core/Lossless_UDP.h +++ b/core/Lossless_UDP.h | |||
@@ -52,7 +52,7 @@ int getconnection_id(IP_Port ip_port); | |||
52 | * Returns an int corresponding to the next connection in our imcoming connection list | 52 | * Returns an int corresponding to the next connection in our imcoming connection list |
53 | * Return -1 if there are no new incoming connections in the list. | 53 | * Return -1 if there are no new incoming connections in the list. |
54 | */ | 54 | */ |
55 | int incoming_connection(); | 55 | int incoming_connection(void); |
56 | 56 | ||
57 | /* | 57 | /* |
58 | * Return -1 if it could not kill the connection. | 58 | * Return -1 if it could not kill the connection. |
@@ -110,7 +110,7 @@ uint32_t recvqueue(int connection_id); | |||
110 | int is_connected(int connection_id); | 110 | int is_connected(int connection_id); |
111 | 111 | ||
112 | /* Call this function a couple times per second It's the main loop. */ | 112 | /* Call this function a couple times per second It's the main loop. */ |
113 | void doLossless_UDP(); | 113 | void doLossless_UDP(void); |
114 | 114 | ||
115 | /* | 115 | /* |
116 | * If we receive a Lossless_UDP packet, call this function so it can be handled. | 116 | * If we receive a Lossless_UDP packet, call this function so it can be handled. |
diff --git a/core/Messenger.c b/core/Messenger.c index c768633e..57d485bb 100644 --- a/core/Messenger.c +++ b/core/Messenger.c | |||
@@ -114,7 +114,7 @@ int m_addfriend(uint8_t *client_id, uint8_t *data, uint16_t length) | |||
114 | return FAERR_ALREADYSENT; | 114 | return FAERR_ALREADYSENT; |
115 | 115 | ||
116 | uint32_t i; | 116 | uint32_t i; |
117 | for (i = 0; i <= numfriends; ++i) { /*TODO: dynamic memory allocation, this will segfault if there are more than MAX_NUM_FRIENDS*/ | 117 | for (i = 0; i <= numfriends && i <= MAX_NUM_FRIENDS; ++i) { /*TODO: dynamic memory allocation to allow for more than MAX_NUM_FRIENDS friends */ |
118 | if(friendlist[i].status == NOFRIEND) { | 118 | if(friendlist[i].status == NOFRIEND) { |
119 | DHT_addfriend(client_id); | 119 | DHT_addfriend(client_id); |
120 | friendlist[i].status = FRIEND_ADDED; | 120 | friendlist[i].status = FRIEND_ADDED; |
@@ -138,7 +138,7 @@ int m_addfriend_norequest(uint8_t * client_id) | |||
138 | if (getfriend_id(client_id) != -1) | 138 | if (getfriend_id(client_id) != -1) |
139 | return -1; | 139 | return -1; |
140 | uint32_t i; | 140 | uint32_t i; |
141 | for (i = 0; i <= numfriends; ++i) {/*TODO: dynamic memory allocation, this will segfault if there are more than MAX_NUM_FRIENDS*/ | 141 | for (i = 0; i <= numfriends && i <= MAX_NUM_FRIENDS; ++i) { /*TODO: dynamic memory allocation to allow for more than MAX_NUM_FRIENDS friends */ |
142 | if(friendlist[i].status == NOFRIEND) { | 142 | if(friendlist[i].status == NOFRIEND) { |
143 | DHT_addfriend(client_id); | 143 | DHT_addfriend(client_id); |
144 | friendlist[i].status = FRIEND_REQUESTED; | 144 | friendlist[i].status = FRIEND_REQUESTED; |
@@ -363,7 +363,7 @@ void m_callback_userstatus(void (*function)(int, uint8_t *, uint16_t)) | |||
363 | 363 | ||
364 | #define PORT 33445 | 364 | #define PORT 33445 |
365 | /* run this at startup */ | 365 | /* run this at startup */ |
366 | int initMessenger() | 366 | int initMessenger(void) |
367 | { | 367 | { |
368 | new_keys(); | 368 | new_keys(); |
369 | m_set_userstatus((uint8_t*)"Online", sizeof("Online")); | 369 | m_set_userstatus((uint8_t*)"Online", sizeof("Online")); |
@@ -378,7 +378,7 @@ int initMessenger() | |||
378 | } | 378 | } |
379 | 379 | ||
380 | //TODO: make this function not suck. | 380 | //TODO: make this function not suck. |
381 | static void doFriends() | 381 | static void doFriends(void) |
382 | { | 382 | { |
383 | /* TODO: add incoming connections and some other stuff. */ | 383 | /* TODO: add incoming connections and some other stuff. */ |
384 | uint32_t i; | 384 | uint32_t i; |
@@ -464,7 +464,7 @@ static void doFriends() | |||
464 | } | 464 | } |
465 | } | 465 | } |
466 | 466 | ||
467 | static void doInbound() | 467 | static void doInbound(void) |
468 | { | 468 | { |
469 | uint8_t secret_nonce[crypto_box_NONCEBYTES]; | 469 | uint8_t secret_nonce[crypto_box_NONCEBYTES]; |
470 | uint8_t public_key[crypto_box_PUBLICKEYBYTES]; | 470 | uint8_t public_key[crypto_box_PUBLICKEYBYTES]; |
@@ -488,7 +488,7 @@ static void doInbound() | |||
488 | static uint64_t last_LANdiscovery; | 488 | static uint64_t last_LANdiscovery; |
489 | 489 | ||
490 | /*Send a LAN discovery packet every LAN_DISCOVERY_INTERVAL seconds*/ | 490 | /*Send a LAN discovery packet every LAN_DISCOVERY_INTERVAL seconds*/ |
491 | static void LANdiscovery() | 491 | static void LANdiscovery(void) |
492 | { | 492 | { |
493 | if (last_LANdiscovery + LAN_DISCOVERY_INTERVAL < unix_time()) { | 493 | if (last_LANdiscovery + LAN_DISCOVERY_INTERVAL < unix_time()) { |
494 | send_LANdiscovery(htons(PORT)); | 494 | send_LANdiscovery(htons(PORT)); |
@@ -498,7 +498,7 @@ static void LANdiscovery() | |||
498 | 498 | ||
499 | 499 | ||
500 | /* the main loop that needs to be run at least 200 times per second. */ | 500 | /* the main loop that needs to be run at least 200 times per second. */ |
501 | void doMessenger() | 501 | void doMessenger(void) |
502 | { | 502 | { |
503 | IP_Port ip_port; | 503 | IP_Port ip_port; |
504 | uint8_t data[MAX_UDP_PACKET_SIZE]; | 504 | uint8_t data[MAX_UDP_PACKET_SIZE]; |
@@ -532,7 +532,7 @@ void doMessenger() | |||
532 | } | 532 | } |
533 | 533 | ||
534 | /* returns the size of the messenger data (for saving) */ | 534 | /* returns the size of the messenger data (for saving) */ |
535 | uint32_t Messenger_size() | 535 | uint32_t Messenger_size(void) |
536 | { | 536 | { |
537 | return crypto_box_PUBLICKEYBYTES + crypto_box_SECRETKEYBYTES | 537 | return crypto_box_PUBLICKEYBYTES + crypto_box_SECRETKEYBYTES |
538 | + sizeof(uint32_t) + DHT_size() + sizeof(uint32_t) + sizeof(Friend) * numfriends; | 538 | + sizeof(uint32_t) + DHT_size() + sizeof(uint32_t) + sizeof(Friend) * numfriends; |
diff --git a/core/Messenger.h b/core/Messenger.h index acf62a32..20b38caa 100644 --- a/core/Messenger.h +++ b/core/Messenger.h | |||
@@ -160,15 +160,15 @@ void m_callback_userstatus(void (*function)(int, uint8_t *, uint16_t)); | |||
160 | /* run this at startup | 160 | /* run this at startup |
161 | returns 0 if no connection problems | 161 | returns 0 if no connection problems |
162 | returns -1 if there are problems */ | 162 | returns -1 if there are problems */ |
163 | int initMessenger(); | 163 | int initMessenger(void); |
164 | 164 | ||
165 | /* the main loop that needs to be run at least 200 times per second */ | 165 | /* the main loop that needs to be run at least 200 times per second */ |
166 | void doMessenger(); | 166 | void doMessenger(void); |
167 | 167 | ||
168 | /* SAVING AND LOADING FUNCTIONS: */ | 168 | /* SAVING AND LOADING FUNCTIONS: */ |
169 | 169 | ||
170 | /* returns the size of the messenger data (for saving) */ | 170 | /* returns the size of the messenger data (for saving) */ |
171 | uint32_t Messenger_size(); | 171 | uint32_t Messenger_size(void); |
172 | 172 | ||
173 | /* save the messenger in data (must be allocated memory of size Messenger_size()) */ | 173 | /* save the messenger in data (must be allocated memory of size Messenger_size()) */ |
174 | void Messenger_save(uint8_t *data); | 174 | void Messenger_save(uint8_t *data); |
diff --git a/core/net_crypto.c b/core/net_crypto.c index 561ba866..1c56b95a 100644 --- a/core/net_crypto.c +++ b/core/net_crypto.c | |||
@@ -126,7 +126,7 @@ int decrypt_data(uint8_t *public_key, uint8_t *secret_key, uint8_t *nonce, | |||
126 | } | 126 | } |
127 | 127 | ||
128 | /* increment the given nonce by 1 */ | 128 | /* increment the given nonce by 1 */ |
129 | void increment_nonce(uint8_t *nonce) | 129 | static void increment_nonce(uint8_t *nonce) |
130 | { | 130 | { |
131 | uint32_t i; | 131 | uint32_t i; |
132 | for (i = 0; i < crypto_box_NONCEBYTES; ++i) { | 132 | for (i = 0; i < crypto_box_NONCEBYTES; ++i) { |
@@ -243,7 +243,7 @@ int handle_request(uint8_t *public_key, uint8_t *data, uint8_t *packet, uint16_t | |||
243 | /* Send a crypto handshake packet containing an encrypted secret nonce and session public key | 243 | /* Send a crypto handshake packet containing an encrypted secret nonce and session public key |
244 | to peer with connection_id and public_key | 244 | to peer with connection_id and public_key |
245 | the packet is encrypted with a random nonce which is sent in plain text with the packet */ | 245 | the packet is encrypted with a random nonce which is sent in plain text with the packet */ |
246 | int send_cryptohandshake(int connection_id, uint8_t *public_key, uint8_t *secret_nonce, uint8_t *session_key) | 246 | static int send_cryptohandshake(int connection_id, uint8_t *public_key, uint8_t *secret_nonce, uint8_t *session_key) |
247 | { | 247 | { |
248 | uint8_t temp_data[MAX_DATA_SIZE]; | 248 | uint8_t temp_data[MAX_DATA_SIZE]; |
249 | uint8_t temp[crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES]; | 249 | uint8_t temp[crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES]; |
@@ -266,7 +266,7 @@ int send_cryptohandshake(int connection_id, uint8_t *public_key, uint8_t *secret | |||
266 | /* Extract secret nonce, session public key and public_key from a packet(data) with length length | 266 | /* Extract secret nonce, session public key and public_key from a packet(data) with length length |
267 | return 1 if successful | 267 | return 1 if successful |
268 | return 0 if failure */ | 268 | return 0 if failure */ |
269 | int handle_cryptohandshake(uint8_t *public_key, uint8_t *secret_nonce, | 269 | static int handle_cryptohandshake(uint8_t *public_key, uint8_t *secret_nonce, |
270 | uint8_t *session_key, uint8_t *data, uint16_t length) | 270 | uint8_t *session_key, uint8_t *data, uint16_t length) |
271 | { | 271 | { |
272 | int pad = (- crypto_box_BOXZEROBYTES + crypto_box_ZEROBYTES); | 272 | int pad = (- crypto_box_BOXZEROBYTES + crypto_box_ZEROBYTES); |
@@ -295,7 +295,7 @@ int handle_cryptohandshake(uint8_t *public_key, uint8_t *secret_nonce, | |||
295 | /* get crypto connection id from public key of peer | 295 | /* get crypto connection id from public key of peer |
296 | return -1 if there are no connections like we are looking for | 296 | return -1 if there are no connections like we are looking for |
297 | return id if it found it */ | 297 | return id if it found it */ |
298 | int getcryptconnection_id(uint8_t *public_key) | 298 | static int getcryptconnection_id(uint8_t *public_key) |
299 | { | 299 | { |
300 | uint32_t i; | 300 | uint32_t i; |
301 | for (i = 0; i < MAX_CRYPTO_CONNECTIONS; ++i) { | 301 | for (i = 0; i < MAX_CRYPTO_CONNECTIONS; ++i) { |
@@ -440,7 +440,7 @@ int is_cryptoconnected(int crypt_connection_id) | |||
440 | 440 | ||
441 | /* Generate our public and private keys | 441 | /* Generate our public and private keys |
442 | Only call this function the first time the program starts. */ | 442 | Only call this function the first time the program starts. */ |
443 | void new_keys() | 443 | void new_keys(void) |
444 | { | 444 | { |
445 | crypto_box_keypair(self_public_key,self_secret_key); | 445 | crypto_box_keypair(self_public_key,self_secret_key); |
446 | } | 446 | } |
@@ -465,7 +465,7 @@ void load_keys(uint8_t *keys) | |||
465 | adds an incoming connection to the incoming_connection list. | 465 | adds an incoming connection to the incoming_connection list. |
466 | returns 0 if successful | 466 | returns 0 if successful |
467 | returns 1 if failure */ | 467 | returns 1 if failure */ |
468 | int new_incoming(int id) | 468 | static int new_incoming(int id) |
469 | { | 469 | { |
470 | uint32_t i; | 470 | uint32_t i; |
471 | for (i = 0; i < MAX_INCOMING; ++i) { | 471 | for (i = 0; i < MAX_INCOMING; ++i) { |
@@ -479,7 +479,7 @@ int new_incoming(int id) | |||
479 | 479 | ||
480 | /* TODO: optimize this | 480 | /* TODO: optimize this |
481 | handle all new incoming connections. */ | 481 | handle all new incoming connections. */ |
482 | static void handle_incomings() | 482 | static void handle_incomings(void) |
483 | { | 483 | { |
484 | int income; | 484 | int income; |
485 | while (1) { | 485 | while (1) { |
@@ -490,7 +490,7 @@ static void handle_incomings() | |||
490 | } | 490 | } |
491 | 491 | ||
492 | /* handle received packets for not yet established crypto connections. */ | 492 | /* handle received packets for not yet established crypto connections. */ |
493 | static void receive_crypto() | 493 | static void receive_crypto(void) |
494 | { | 494 | { |
495 | uint32_t i; | 495 | uint32_t i; |
496 | for (i = 0; i < MAX_CRYPTO_CONNECTIONS; ++i) { | 496 | for (i = 0; i < MAX_CRYPTO_CONNECTIONS; ++i) { |
@@ -547,7 +547,7 @@ static void receive_crypto() | |||
547 | 547 | ||
548 | /* run this to (re)initialize net_crypto | 548 | /* run this to (re)initialize net_crypto |
549 | sets all the global connection variables to their default values. */ | 549 | sets all the global connection variables to their default values. */ |
550 | void initNetCrypto() | 550 | void initNetCrypto(void) |
551 | { | 551 | { |
552 | memset(crypto_connections, 0 ,sizeof(crypto_connections)); | 552 | memset(crypto_connections, 0 ,sizeof(crypto_connections)); |
553 | memset(incoming_connections, -1 ,sizeof(incoming_connections)); | 553 | memset(incoming_connections, -1 ,sizeof(incoming_connections)); |
@@ -556,7 +556,7 @@ void initNetCrypto() | |||
556 | crypto_connections[i].number = ~0; | 556 | crypto_connections[i].number = ~0; |
557 | } | 557 | } |
558 | 558 | ||
559 | static void killTimedout() | 559 | static void killTimedout(void) |
560 | { | 560 | { |
561 | uint32_t i; | 561 | uint32_t i; |
562 | for (i = 0; i < MAX_CRYPTO_CONNECTIONS; ++i) { | 562 | for (i = 0; i < MAX_CRYPTO_CONNECTIONS; ++i) { |
@@ -570,7 +570,7 @@ static void killTimedout() | |||
570 | } | 570 | } |
571 | 571 | ||
572 | /* main loop */ | 572 | /* main loop */ |
573 | void doNetCrypto() | 573 | void doNetCrypto(void) |
574 | { | 574 | { |
575 | /* TODO:check if friend requests were sent correctly | 575 | /* TODO:check if friend requests were sent correctly |
576 | handle new incoming connections | 576 | handle new incoming connections |
diff --git a/core/net_crypto.h b/core/net_crypto.h index 0e7284c9..66634d45 100644 --- a/core/net_crypto.h +++ b/core/net_crypto.h | |||
@@ -110,7 +110,7 @@ int is_cryptoconnected(int crypt_connection_id); | |||
110 | 110 | ||
111 | /* Generate our public and private keys | 111 | /* Generate our public and private keys |
112 | Only call this function the first time the program starts. */ | 112 | Only call this function the first time the program starts. */ |
113 | void new_keys(); | 113 | void new_keys(void); |
114 | 114 | ||
115 | /* save the public and private keys to the keys array | 115 | /* save the public and private keys to the keys array |
116 | Length must be crypto_box_PUBLICKEYBYTES + crypto_box_SECRETKEYBYTES */ | 116 | Length must be crypto_box_PUBLICKEYBYTES + crypto_box_SECRETKEYBYTES */ |
@@ -122,10 +122,10 @@ void load_keys(uint8_t * keys); | |||
122 | 122 | ||
123 | /* run this to (re)initialize net_crypto | 123 | /* run this to (re)initialize net_crypto |
124 | sets all the global connection variables to their default values. */ | 124 | sets all the global connection variables to their default values. */ |
125 | void initNetCrypto(); | 125 | void initNetCrypto(void); |
126 | 126 | ||
127 | /* main loop */ | 127 | /* main loop */ |
128 | void doNetCrypto(); | 128 | void doNetCrypto(void); |
129 | 129 | ||
130 | #ifdef __cplusplus | 130 | #ifdef __cplusplus |
131 | } | 131 | } |
diff --git a/core/network.c b/core/network.c index c58549bf..8c6fa7b6 100644 --- a/core/network.c +++ b/core/network.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include "network.h" | 24 | #include "network.h" |
25 | 25 | ||
26 | /* returns current UNIX time in microseconds (us). */ | 26 | /* returns current UNIX time in microseconds (us). */ |
27 | uint64_t current_time() | 27 | uint64_t current_time(void) |
28 | { | 28 | { |
29 | uint64_t time; | 29 | uint64_t time; |
30 | #ifdef WIN32 | 30 | #ifdef WIN32 |
@@ -46,7 +46,7 @@ uint64_t current_time() | |||
46 | 46 | ||
47 | /* return a random number | 47 | /* return a random number |
48 | NOTE: this function should probably not be used where cryptographic randomness is absolutely necessary */ | 48 | NOTE: this function should probably not be used where cryptographic randomness is absolutely necessary */ |
49 | uint32_t random_int() | 49 | uint32_t random_int(void) |
50 | { | 50 | { |
51 | #ifndef VANILLA_NACL | 51 | #ifndef VANILLA_NACL |
52 | //NOTE: this function comes from libsodium | 52 | //NOTE: this function comes from libsodium |
@@ -153,7 +153,7 @@ int init_networking(IP ip, uint16_t port) | |||
153 | } | 153 | } |
154 | 154 | ||
155 | /* function to cleanup networking stuff */ | 155 | /* function to cleanup networking stuff */ |
156 | void shutdown_networking() | 156 | void shutdown_networking(void) |
157 | { | 157 | { |
158 | #ifdef WIN32 | 158 | #ifdef WIN32 |
159 | closesocket(sock); | 159 | closesocket(sock); |
diff --git a/core/network.h b/core/network.h index a7559ebe..d246a9d1 100644 --- a/core/network.h +++ b/core/network.h | |||
@@ -90,11 +90,11 @@ typedef struct { | |||
90 | } ADDR; | 90 | } ADDR; |
91 | 91 | ||
92 | /* returns current time in milleseconds since the epoch. */ | 92 | /* returns current time in milleseconds since the epoch. */ |
93 | uint64_t current_time(); | 93 | uint64_t current_time(void); |
94 | 94 | ||
95 | /* return a random number | 95 | /* return a random number |
96 | NOTE: this function should probably not be used where cryptographic randomness is absolutely necessary */ | 96 | NOTE: this function should probably not be used where cryptographic randomness is absolutely necessary */ |
97 | uint32_t random_int(); | 97 | uint32_t random_int(void); |
98 | 98 | ||
99 | /* Basic network functions: */ | 99 | /* Basic network functions: */ |
100 | 100 | ||
@@ -115,7 +115,7 @@ int receivepacket(IP_Port *ip_port, uint8_t *data, uint32_t *length); | |||
115 | int init_networking(IP ip, uint16_t port); | 115 | int init_networking(IP ip, uint16_t port); |
116 | 116 | ||
117 | /* function to cleanup networking stuff(doesn't do much right now) */ | 117 | /* function to cleanup networking stuff(doesn't do much right now) */ |
118 | void shutdown_networking(); | 118 | void shutdown_networking(void); |
119 | 119 | ||
120 | /* | 120 | /* |
121 | resolve_addr(): | 121 | resolve_addr(): |