diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/DHT.c | 40 | ||||
-rw-r--r-- | core/DHT.h | 2 | ||||
-rw-r--r-- | core/Messenger.c | 4 |
3 files changed, 23 insertions, 23 deletions
@@ -85,7 +85,7 @@ typedef struct { | |||
85 | uint8_t hole_punching; | 85 | uint8_t hole_punching; |
86 | uint32_t punching_index; | 86 | uint32_t punching_index; |
87 | uint32_t punching_timestamp; | 87 | uint32_t punching_timestamp; |
88 | uint32_t recvNATping_timestamp; | 88 | int64_t recvNATping_timestamp; |
89 | uint64_t NATping_id; | 89 | uint64_t NATping_id; |
90 | uint32_t NATping_timestamp; | 90 | uint32_t NATping_timestamp; |
91 | } Friend; | 91 | } Friend; |
@@ -98,7 +98,7 @@ typedef struct { | |||
98 | typedef struct { | 98 | typedef struct { |
99 | IP_Port ip_port; | 99 | IP_Port ip_port; |
100 | uint64_t ping_id; | 100 | uint64_t ping_id; |
101 | uint32_t timestamp; | 101 | int64_t timestamp; |
102 | } Pinged; | 102 | } Pinged; |
103 | 103 | ||
104 | /*----------------------------------------------------------------------------------*/ | 104 | /*----------------------------------------------------------------------------------*/ |
@@ -138,7 +138,7 @@ int id_closest(uint8_t * client_id, uint8_t * client_id1, uint8_t * client_id2) | |||
138 | int client_in_list(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port) | 138 | int client_in_list(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port) |
139 | { | 139 | { |
140 | uint32_t i; | 140 | uint32_t i; |
141 | uint32_t temp_time = unix_time(); | 141 | int64_t temp_time = unix_time(); |
142 | 142 | ||
143 | for(i = 0; i < length; ++i) { | 143 | for(i = 0; i < length; ++i) { |
144 | /*If ip_port is assigned to a different client_id replace it*/ | 144 | /*If ip_port is assigned to a different client_id replace it*/ |
@@ -188,7 +188,7 @@ int get_close_nodes(uint8_t * client_id, Node_format * nodes_list) | |||
188 | { | 188 | { |
189 | uint32_t i, j, k; | 189 | uint32_t i, j, k; |
190 | int num_nodes=0; | 190 | int num_nodes=0; |
191 | uint32_t temp_time = unix_time(); | 191 | int64_t temp_time = unix_time(); |
192 | for(i = 0; i < LCLIENT_LIST; ++i) | 192 | for(i = 0; i < LCLIENT_LIST; ++i) |
193 | if(close_clientlist[i].timestamp + BAD_NODE_TIMEOUT > temp_time && | 193 | if(close_clientlist[i].timestamp + BAD_NODE_TIMEOUT > temp_time && |
194 | !client_in_nodelist(nodes_list, MAX_SENT_NODES,close_clientlist[i].client_id)) { | 194 | !client_in_nodelist(nodes_list, MAX_SENT_NODES,close_clientlist[i].client_id)) { |
@@ -230,7 +230,7 @@ int get_close_nodes(uint8_t * client_id, Node_format * nodes_list) | |||
230 | int replace_bad(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port) /* tested */ | 230 | int replace_bad(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port) /* tested */ |
231 | { | 231 | { |
232 | uint32_t i; | 232 | uint32_t i; |
233 | uint32_t temp_time = unix_time(); | 233 | int64_t temp_time = unix_time(); |
234 | for(i = 0; i < length; ++i) | 234 | for(i = 0; i < length; ++i) |
235 | if(list[i].timestamp + BAD_NODE_TIMEOUT < temp_time) { /* if node is bad. */ | 235 | if(list[i].timestamp + BAD_NODE_TIMEOUT < temp_time) { /* if node is bad. */ |
236 | memcpy(list[i].client_id, client_id, CLIENT_ID_SIZE); | 236 | memcpy(list[i].client_id, client_id, CLIENT_ID_SIZE); |
@@ -249,7 +249,7 @@ int replace_bad(Client_data * list, uint32_t length, uint8_t * client_id, IP_Por | |||
249 | int replace_good(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port, uint8_t * comp_client_id) | 249 | int replace_good(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port, uint8_t * comp_client_id) |
250 | { | 250 | { |
251 | uint32_t i; | 251 | uint32_t i; |
252 | uint32_t temp_time = unix_time(); | 252 | int64_t temp_time = unix_time(); |
253 | 253 | ||
254 | for(i = 0; i < length; ++i) | 254 | for(i = 0; i < length; ++i) |
255 | if(id_closest(comp_client_id, list[i].client_id, client_id) == 2) { | 255 | if(id_closest(comp_client_id, list[i].client_id, client_id) == 2) { |
@@ -288,7 +288,7 @@ void addto_lists(IP_Port ip_port, uint8_t * client_id) | |||
288 | void returnedip_ports(IP_Port ip_port, uint8_t * client_id, uint8_t * nodeclient_id) | 288 | void returnedip_ports(IP_Port ip_port, uint8_t * client_id, uint8_t * nodeclient_id) |
289 | { | 289 | { |
290 | uint32_t i, j; | 290 | uint32_t i, j; |
291 | uint32_t temp_time = unix_time(); | 291 | int64_t temp_time = unix_time(); |
292 | if(memcmp(client_id, self_public_key, CLIENT_ID_SIZE) == 0) { | 292 | if(memcmp(client_id, self_public_key, CLIENT_ID_SIZE) == 0) { |
293 | for(i = 0; i < LCLIENT_LIST; ++i) | 293 | for(i = 0; i < LCLIENT_LIST; ++i) |
294 | if(memcmp(nodeclient_id, close_clientlist[i].client_id, CLIENT_ID_SIZE) == 0) { | 294 | if(memcmp(nodeclient_id, close_clientlist[i].client_id, CLIENT_ID_SIZE) == 0) { |
@@ -316,7 +316,7 @@ int is_pinging(IP_Port ip_port, uint64_t ping_id) | |||
316 | { | 316 | { |
317 | uint32_t i; | 317 | uint32_t i; |
318 | uint8_t pinging; | 318 | uint8_t pinging; |
319 | uint32_t temp_time = unix_time(); | 319 | int64_t temp_time = unix_time(); |
320 | 320 | ||
321 | for(i = 0; i < LPING_ARRAY; ++i ) | 321 | for(i = 0; i < LPING_ARRAY; ++i ) |
322 | if((pings[i].timestamp + PING_TIMEOUT) > temp_time) { | 322 | if((pings[i].timestamp + PING_TIMEOUT) > temp_time) { |
@@ -340,7 +340,7 @@ int is_gettingnodes(IP_Port ip_port, uint64_t ping_id) | |||
340 | { | 340 | { |
341 | uint32_t i; | 341 | uint32_t i; |
342 | uint8_t pinging; | 342 | uint8_t pinging; |
343 | uint32_t temp_time = unix_time(); | 343 | int64_t temp_time = unix_time(); |
344 | 344 | ||
345 | for(i = 0; i < LSEND_NODES_ARRAY; ++i ) | 345 | for(i = 0; i < LSEND_NODES_ARRAY; ++i ) |
346 | if((send_nodes[i].timestamp + PING_TIMEOUT) > temp_time) { | 346 | if((send_nodes[i].timestamp + PING_TIMEOUT) > temp_time) { |
@@ -368,7 +368,7 @@ uint64_t add_pinging(IP_Port ip_port) | |||
368 | { | 368 | { |
369 | uint32_t i, j; | 369 | uint32_t i, j; |
370 | uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int(); | 370 | uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int(); |
371 | uint32_t temp_time = unix_time(); | 371 | int64_t temp_time = unix_time(); |
372 | 372 | ||
373 | for(i = 0; i < PING_TIMEOUT; ++i ) | 373 | for(i = 0; i < PING_TIMEOUT; ++i ) |
374 | for(j = 0; j < LPING_ARRAY; ++j ) | 374 | for(j = 0; j < LPING_ARRAY; ++j ) |
@@ -387,7 +387,7 @@ uint64_t add_gettingnodes(IP_Port ip_port) | |||
387 | { | 387 | { |
388 | uint32_t i, j; | 388 | uint32_t i, j; |
389 | uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int(); | 389 | uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int(); |
390 | uint32_t temp_time = unix_time(); | 390 | int64_t temp_time = unix_time(); |
391 | 391 | ||
392 | for(i = 0; i < PING_TIMEOUT; ++i ) | 392 | for(i = 0; i < PING_TIMEOUT; ++i ) |
393 | for(j = 0; j < LSEND_NODES_ARRAY; ++j ) | 393 | for(j = 0; j < LSEND_NODES_ARRAY; ++j ) |
@@ -684,7 +684,7 @@ IP_Port DHT_getfriendip(uint8_t * client_id) | |||
684 | { | 684 | { |
685 | uint32_t i, j; | 685 | uint32_t i, j; |
686 | IP_Port empty = {{{0}}, 0}; | 686 | IP_Port empty = {{{0}}, 0}; |
687 | uint32_t temp_time = unix_time(); | 687 | int64_t temp_time = unix_time(); |
688 | for(i = 0; i < num_friends; ++i) | 688 | for(i = 0; i < num_friends; ++i) |
689 | /* Equal */ | 689 | /* Equal */ |
690 | if(memcmp(friends_list[i].client_id, client_id, CLIENT_ID_SIZE) == 0) { | 690 | if(memcmp(friends_list[i].client_id, client_id, CLIENT_ID_SIZE) == 0) { |
@@ -705,7 +705,7 @@ IP_Port DHT_getfriendip(uint8_t * client_id) | |||
705 | void doDHTFriends() | 705 | void doDHTFriends() |
706 | { | 706 | { |
707 | uint32_t i, j; | 707 | uint32_t i, j; |
708 | uint32_t temp_time = unix_time(); | 708 | int64_t temp_time = unix_time(); |
709 | uint32_t rand_node; | 709 | uint32_t rand_node; |
710 | uint32_t index[MAX_FRIEND_CLIENTS]; | 710 | uint32_t index[MAX_FRIEND_CLIENTS]; |
711 | 711 | ||
@@ -739,7 +739,7 @@ static uint32_t close_lastgetnodes; | |||
739 | void doClose() /* tested */ | 739 | void doClose() /* tested */ |
740 | { | 740 | { |
741 | uint32_t i; | 741 | uint32_t i; |
742 | uint32_t temp_time = unix_time(); | 742 | int64_t temp_time = unix_time(); |
743 | uint32_t num_nodes = 0; | 743 | uint32_t num_nodes = 0; |
744 | uint32_t rand_node; | 744 | uint32_t rand_node; |
745 | uint32_t index[LCLIENT_LIST]; | 745 | uint32_t index[LCLIENT_LIST]; |
@@ -792,7 +792,7 @@ static int friend_iplist(IP_Port * ip_portlist, uint16_t friend_num) | |||
792 | { | 792 | { |
793 | int num_ips = 0; | 793 | int num_ips = 0; |
794 | uint32_t i; | 794 | uint32_t i; |
795 | uint32_t temp_time = unix_time(); | 795 | int64_t temp_time = unix_time(); |
796 | if(friend_num >= num_friends) | 796 | if(friend_num >= num_friends) |
797 | return -1; | 797 | return -1; |
798 | for(i = 0; i < MAX_FRIEND_CLIENTS; ++i) | 798 | for(i = 0; i < MAX_FRIEND_CLIENTS; ++i) |
@@ -813,7 +813,7 @@ int route_tofriend(uint8_t * friend_id, uint8_t * packet, uint32_t length) | |||
813 | { | 813 | { |
814 | uint32_t i, j; | 814 | uint32_t i, j; |
815 | uint32_t sent = 0; | 815 | uint32_t sent = 0; |
816 | uint32_t temp_time = unix_time(); | 816 | int64_t temp_time = unix_time(); |
817 | for(i = 0; i < num_friends; ++i) | 817 | for(i = 0; i < num_friends; ++i) |
818 | /* Equal */ | 818 | /* Equal */ |
819 | if(memcmp(friends_list[i].client_id, friend_id, CLIENT_ID_SIZE) == 0) { | 819 | if(memcmp(friends_list[i].client_id, friend_id, CLIENT_ID_SIZE) == 0) { |
@@ -839,7 +839,7 @@ int routeone_tofriend(uint8_t * friend_id, uint8_t * packet, uint32_t length) | |||
839 | IP_Port ip_list[MAX_FRIEND_CLIENTS]; | 839 | IP_Port ip_list[MAX_FRIEND_CLIENTS]; |
840 | int n = 0; | 840 | int n = 0; |
841 | uint32_t i; | 841 | uint32_t i; |
842 | uint32_t temp_time = unix_time(); | 842 | int64_t temp_time = unix_time(); |
843 | for(i = 0; i < MAX_FRIEND_CLIENTS; ++i) | 843 | for(i = 0; i < MAX_FRIEND_CLIENTS; ++i) |
844 | /*If ip is not zero and node is good */ | 844 | /*If ip is not zero and node is good */ |
845 | if(friends_list[num].client_list[i].ret_ip_port.ip.i != 0 && | 845 | if(friends_list[num].client_list[i].ret_ip_port.ip.i != 0 && |
@@ -989,7 +989,7 @@ static void punch_holes(IP ip, uint16_t * port_list, uint16_t numports, uint16_t | |||
989 | static void doNAT() | 989 | static void doNAT() |
990 | { | 990 | { |
991 | uint32_t i; | 991 | uint32_t i; |
992 | uint32_t temp_time = unix_time(); | 992 | int64_t temp_time = unix_time(); |
993 | for(i = 0; i < num_friends; ++i) { | 993 | for(i = 0; i < num_friends; ++i) { |
994 | IP_Port ip_list[MAX_FRIEND_CLIENTS]; | 994 | IP_Port ip_list[MAX_FRIEND_CLIENTS]; |
995 | int num = friend_iplist(ip_list, i); | 995 | int num = friend_iplist(ip_list, i); |
@@ -1078,7 +1078,7 @@ int DHT_load(uint8_t * data, uint32_t size) | |||
1078 | if((size - sizeof(close_clientlist)) % sizeof(Friend) != 0) | 1078 | if((size - sizeof(close_clientlist)) % sizeof(Friend) != 0) |
1079 | return -1; | 1079 | return -1; |
1080 | uint32_t i, j; | 1080 | uint32_t i, j; |
1081 | /* uint32_t temp_time = unix_time(); */ | 1081 | /* int64_t temp_time = unix_time(); */ |
1082 | uint16_t temp; | 1082 | uint16_t temp; |
1083 | 1083 | ||
1084 | temp = (size - sizeof(close_clientlist))/sizeof(Friend); | 1084 | temp = (size - sizeof(close_clientlist))/sizeof(Friend); |
@@ -1108,7 +1108,7 @@ int DHT_load(uint8_t * data, uint32_t size) | |||
1108 | int DHT_isconnected() | 1108 | int DHT_isconnected() |
1109 | { | 1109 | { |
1110 | uint32_t i; | 1110 | uint32_t i; |
1111 | uint32_t temp_time = unix_time(); | 1111 | int64_t temp_time = unix_time(); |
1112 | for(i = 0; i < LCLIENT_LIST; ++i) | 1112 | for(i = 0; i < LCLIENT_LIST; ++i) |
1113 | if(close_clientlist[i].timestamp + BAD_NODE_TIMEOUT > temp_time) | 1113 | if(close_clientlist[i].timestamp + BAD_NODE_TIMEOUT > temp_time) |
1114 | return 1; | 1114 | return 1; |
@@ -31,7 +31,7 @@ extern "C" { | |||
31 | #endif | 31 | #endif |
32 | 32 | ||
33 | /* Current time, unix format */ | 33 | /* Current time, unix format */ |
34 | #define unix_time() ((uint32_t)time(NULL)) | 34 | #define unix_time() ((int64_t)time(NULL)) |
35 | 35 | ||
36 | /* size of the client_id in bytes */ | 36 | /* size of the client_id in bytes */ |
37 | #define CLIENT_ID_SIZE crypto_box_PUBLICKEYBYTES | 37 | #define CLIENT_ID_SIZE crypto_box_PUBLICKEYBYTES |
diff --git a/core/Messenger.c b/core/Messenger.c index f8a794ce..30f3f658 100644 --- a/core/Messenger.c +++ b/core/Messenger.c | |||
@@ -27,7 +27,7 @@ | |||
27 | typedef struct { | 27 | typedef struct { |
28 | uint8_t client_id[CLIENT_ID_SIZE]; | 28 | uint8_t client_id[CLIENT_ID_SIZE]; |
29 | int crypt_connection_id; | 29 | int crypt_connection_id; |
30 | int friend_request_id; /* id of the friend request corresponding to the current friend request to the current friend. */ | 30 | int64_t friend_request_id; /* id of the friend request corresponding to the current friend request to the current friend. */ |
31 | uint8_t status; /* 0 if no friend, 1 if added, 2 if friend request sent, 3 if confirmed friend, 4 if online. */ | 31 | uint8_t status; /* 0 if no friend, 1 if added, 2 if friend request sent, 3 if confirmed friend, 4 if online. */ |
32 | uint8_t info[MAX_DATA_SIZE]; /* the data that is sent during the friend requests we do */ | 32 | uint8_t info[MAX_DATA_SIZE]; /* the data that is sent during the friend requests we do */ |
33 | uint8_t name[MAX_NAME_LENGTH]; | 33 | uint8_t name[MAX_NAME_LENGTH]; |
@@ -491,7 +491,7 @@ static void doInbound() | |||
491 | /*Interval in seconds between LAN discovery packet sending*/ | 491 | /*Interval in seconds between LAN discovery packet sending*/ |
492 | #define LAN_DISCOVERY_INTERVAL 60 | 492 | #define LAN_DISCOVERY_INTERVAL 60 |
493 | 493 | ||
494 | static uint32_t last_LANdiscovery; | 494 | static int64_t last_LANdiscovery; |
495 | 495 | ||
496 | /*Send a LAN discovery packet every LAN_DISCOVERY_INTERVAL seconds*/ | 496 | /*Send a LAN discovery packet every LAN_DISCOVERY_INTERVAL seconds*/ |
497 | static void LANdiscovery() | 497 | static void LANdiscovery() |