summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/CMakeLists.txt19
-rw-r--r--core/DHT.c56
-rw-r--r--core/DHT.h4
-rw-r--r--core/LAN_discovery.c8
-rw-r--r--core/Lossless_UDP.c44
-rw-r--r--core/Lossless_UDP.h4
-rw-r--r--core/Messenger.c12
-rw-r--r--core/Messenger.h6
-rw-r--r--core/net_crypto.c22
-rw-r--r--core/net_crypto.h6
-rw-r--r--core/network.c6
-rw-r--r--core/network.h6
12 files changed, 98 insertions, 95 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 @@
1cmake_minimum_required(VERSION 2.6.0) 1cmake_minimum_required(VERSION 2.6.0)
2project(toxcore C) 2project(toxcore C)
3 3
4if(WIN32)
5 include_directories(${CMAKE_HOME_DIRECTORY}/sodium/include/)
6else(WIN32)
7 include_directories(${SODIUM_INCLUDE_DIR})
8endif()
9
10set(core_sources 4set(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
19add_library(toxcore SHARED ${core_sources}) 13if(SHARED_TOXCORE)
20target_link_libraries(toxcore ${SODIUM_LIBRARY}) 14 add_library(toxcore SHARED ${core_sources})
15else()
16 add_library(toxcore ${core_sources})
17endif()
18
19target_link_libraries(toxcore ${LINK_CRYPTO_LIBRARY})
20
21if(WIN32)
22 target_link_libraries(toxcore ws2_32)
23endif()
diff --git a/core/DHT.c b/core/DHT.c
index 08b4710e..6375b86b 100644
--- a/core/DHT.c
+++ b/core/DHT.c
@@ -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 */
122int id_closest(uint8_t * id, uint8_t * id1, uint8_t * id2) 122static 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
140int ipport_equal(IP_Port a, IP_Port b) 140static 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
145int id_equal(uint8_t* a, uint8_t* b) 145static 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
150int is_timeout(uint64_t time_now, uint64_t timestamp, uint64_t timeout) 150static 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 */
162int client_in_list(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port) 162static 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 */
187int client_in_nodelist(Node_format * list, uint32_t length, uint8_t * client_id) 187static 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 */
218int get_close_nodes(uint8_t * client_id, Node_format * nodes_list) 218static 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 */
304int replace_bad( Client_data * list, 304static 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 */
328int replace_good( Client_data * list, 328static 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 */
354void addto_lists(IP_Port ip_port, uint8_t * client_id) 354static 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 */
396void returnedip_ports(IP_Port ip_port, uint8_t * client_id, uint8_t * nodeclient_id) 396static 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 */
434int is_pinging(IP_Port ip_port, uint64_t ping_id) 434static 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. */
459int is_gettingnodes(IP_Port ip_port, uint64_t ping_id) 459static 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 */
489uint64_t add_pinging(IP_Port ip_port) 489static 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 */
510uint64_t add_gettingnodes(IP_Port ip_port) 510static 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 */
679int handle_pingreq(uint8_t * packet, uint32_t length, IP_Port source) 679static 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
705int handle_pingres(uint8_t * packet, uint32_t length, IP_Port source) 705static 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
732int handle_getnodes(uint8_t * packet, uint32_t length, IP_Port source) 732static 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
764int handle_sendnodes(uint8_t * packet, uint32_t length, IP_Port source) 764static 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 */
876void doDHTFriends() 876static 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 */
915void doClose() 915static 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*/
1032int routeone_tofriend(uint8_t * friend_id, uint8_t * packet, uint32_t length) 1032static 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
1082int send_NATping(uint8_t * public_key, uint64_t ping_id, uint8_t type) 1082static 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 */
1108int handle_NATping(uint8_t * packet, uint32_t length, IP_Port source) 1108static 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
1214static void doNAT() 1214static 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
1278void doDHT() 1278void 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) */
1286uint32_t DHT_size() 1286uint32_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 */
1344int DHT_isconnected() 1344int 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();
diff --git a/core/DHT.h b/core/DHT.h
index 36670ed5..0edaebf3 100644
--- a/core/DHT.h
+++ b/core/DHT.h
@@ -58,7 +58,7 @@ int DHT_delfriend(uint8_t *client_id);
58IP_Port DHT_getfriendip(uint8_t *client_id); 58IP_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) */
61void doDHT(); 61void 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) */
93uint32_t DHT_size(); 93uint32_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() */
96void DHT_save(uint8_t *data); 96void 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 */
32uint32_t get_broadcast(void) 32static 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 */
79IP broadcast_ip() 79static 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 */
95int LAN_ip(IP ip) 95static 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
110int handle_LANdiscovery(uint8_t *packet, uint32_t length, IP_Port source) 110static 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 */
152uint32_t handshake_id(IP_Port source) 152static 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 */
171void change_handshake(IP_Port source) 171static 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 */
237int new_inconnection(IP_Port ip_port) 237static 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 */
287int incoming_connection() 287int 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. */
301static void free_connections() 301static 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
473int send_handshake(IP_Port ip_port, uint32_t handshake_id1, uint32_t handshake_id2) 473static 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
487int send_SYNC(uint32_t connection_id) 487static 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
514int send_data_packet(uint32_t connection_id, uint32_t packet_num) 514static 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 */
529int send_DATA(uint32_t connection_id) 529static 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. */
558int handle_handshake(uint8_t * packet, uint32_t length, IP_Port source) 558static 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. */
594int SYNC_valid(uint32_t length) 594static 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: */
605int handle_SYNC1(IP_Port source, uint32_t recv_packetnum, uint32_t sent_packetnum) 605static 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: */
625int handle_SYNC2(int connection_id, uint8_t counter, uint32_t recv_packetnum, uint32_t sent_packetnum) 625static 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: */
638int handle_SYNC3(int connection_id, uint8_t counter, uint32_t recv_packetnum, uint32_t sent_packetnum, uint32_t * req_packets, 638static 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
672int handle_SYNC(uint8_t *packet, uint32_t length, IP_Port source) 672static 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 */
711int add_recv(int connection_id, uint32_t data_num, uint8_t *data, uint16_t size) 711static 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
745int handle_data(uint8_t *packet, uint32_t length, IP_Port source) 745static 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 */
796void doNew() 796static 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
820void doSYNC() 820static 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
833void doData() 833static 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 */
854void adjustRates() 854static 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. */
874void doLossless_UDP() 874void 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 */
55int incoming_connection(); 55int 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);
110int is_connected(int connection_id); 110int 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. */
113void doLossless_UDP(); 113void 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..dee6eefc 100644
--- a/core/Messenger.c
+++ b/core/Messenger.c
@@ -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 */
366int initMessenger() 366int 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.
381static void doFriends() 381static 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
467static void doInbound() 467static 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()
488static uint64_t last_LANdiscovery; 488static 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*/
491static void LANdiscovery() 491static 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. */
501void doMessenger() 501void 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) */
535uint32_t Messenger_size() 535uint32_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 */
163int initMessenger(); 163int 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 */
166void doMessenger(); 166void 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) */
171uint32_t Messenger_size(); 171uint32_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()) */
174void Messenger_save(uint8_t *data); 174void 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 */
129void increment_nonce(uint8_t *nonce) 129static 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 */
246int send_cryptohandshake(int connection_id, uint8_t *public_key, uint8_t *secret_nonce, uint8_t *session_key) 246static 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 */
269int handle_cryptohandshake(uint8_t *public_key, uint8_t *secret_nonce, 269static 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 */
298int getcryptconnection_id(uint8_t *public_key) 298static 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. */
443void new_keys() 443void 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 */
468int new_incoming(int id) 468static 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. */
482static void handle_incomings() 482static 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. */
493static void receive_crypto() 493static 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. */
550void initNetCrypto() 550void 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
559static void killTimedout() 559static 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 */
573void doNetCrypto() 573void 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. */
113void new_keys(); 113void 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. */
125void initNetCrypto(); 125void initNetCrypto(void);
126 126
127/* main loop */ 127/* main loop */
128void doNetCrypto(); 128void 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). */
27uint64_t current_time() 27uint64_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 */
49uint32_t random_int() 49uint32_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 */
156void shutdown_networking() 156void 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. */
93uint64_t current_time(); 93uint64_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 */
97uint32_t random_int(); 97uint32_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);
115int init_networking(IP ip, uint16_t port); 115int 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) */
118void shutdown_networking(); 118void shutdown_networking(void);
119 119
120/* 120/*
121 resolve_addr(): 121 resolve_addr():