summaryrefslogtreecommitdiff
path: root/core/DHT.c
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2013-08-02 15:57:53 -0400
committerirungentoo <irungentoo@gmail.com>2013-08-02 15:57:53 -0400
commit7b46b04ce7f579815214f68092e359938823d7f0 (patch)
tree40b38d5afc08c02efd82fe056222388b7cc19ae5 /core/DHT.c
parent346e4b28ca92d82117a0a796eb0344104fc7310e (diff)
Time is better as an unsigned variable.
Diffstat (limited to 'core/DHT.c')
-rw-r--r--core/DHT.c54
1 files changed, 27 insertions, 27 deletions
diff --git a/core/DHT.c b/core/DHT.c
index 81712186..6972fdeb 100644
--- a/core/DHT.c
+++ b/core/DHT.c
@@ -64,12 +64,12 @@
64typedef struct { 64typedef struct {
65 uint8_t client_id[CLIENT_ID_SIZE]; 65 uint8_t client_id[CLIENT_ID_SIZE];
66 IP_Port ip_port; 66 IP_Port ip_port;
67 uint32_t timestamp; 67 uint64_t timestamp;
68 uint32_t last_pinged; 68 uint64_t last_pinged;
69 69
70 /* Returned by this node. Either our friend or us */ 70 /* Returned by this node. Either our friend or us */
71 IP_Port ret_ip_port; 71 IP_Port ret_ip_port;
72 uint32_t ret_timestamp; 72 uint64_t ret_timestamp;
73} Client_data; 73} Client_data;
74 74
75typedef struct { 75typedef struct {
@@ -77,17 +77,17 @@ typedef struct {
77 Client_data client_list[MAX_FRIEND_CLIENTS]; 77 Client_data client_list[MAX_FRIEND_CLIENTS];
78 78
79 /* time at which the last get_nodes request was sent. */ 79 /* time at which the last get_nodes request was sent. */
80 uint32_t lastgetnode; 80 uint64_t lastgetnode;
81 81
82 /* Symetric NAT hole punching stuff */ 82 /* Symetric NAT hole punching stuff */
83 83
84 /* 1 if currently hole punching, otherwise 0 */ 84 /* 1 if currently hole punching, otherwise 0 */
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 uint64_t punching_timestamp;
88 int64_t recvNATping_timestamp; 88 uint64_t recvNATping_timestamp;
89 uint64_t NATping_id; 89 uint64_t NATping_id;
90 uint32_t NATping_timestamp; 90 uint64_t NATping_timestamp;
91} Friend; 91} Friend;
92 92
93typedef struct { 93typedef struct {
@@ -98,7 +98,7 @@ typedef struct {
98typedef struct { 98typedef struct {
99 IP_Port ip_port; 99 IP_Port ip_port;
100 uint64_t ping_id; 100 uint64_t ping_id;
101 int64_t timestamp; 101 uint64_t timestamp;
102} Pinged; 102} Pinged;
103 103
104/*----------------------------------------------------------------------------------*/ 104/*----------------------------------------------------------------------------------*/
@@ -146,7 +146,7 @@ int id_closest(uint8_t * client_id, uint8_t * client_id1, uint8_t * client_id2)
146int client_in_list(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port) 146int client_in_list(Client_data * list, uint32_t length, uint8_t * client_id, IP_Port ip_port)
147{ 147{
148 uint32_t i; 148 uint32_t i;
149 int64_t temp_time = unix_time(); 149 uint64_t temp_time = unix_time();
150 150
151 for(i = 0; i < length; ++i) { 151 for(i = 0; i < length; ++i) {
152 /*If ip_port is assigned to a different client_id replace it*/ 152 /*If ip_port is assigned to a different client_id replace it*/
@@ -199,7 +199,7 @@ static int friend_number(uint8_t * client_id)
199int get_close_nodes(uint8_t * client_id, Node_format * nodes_list) 199int get_close_nodes(uint8_t * client_id, Node_format * nodes_list)
200{ 200{
201 uint32_t i, j, k; 201 uint32_t i, j, k;
202 int64_t temp_time = unix_time(); 202 uint64_t temp_time = unix_time();
203 int num_nodes = 0, closest, tout, inlist; 203 int num_nodes = 0, closest, tout, inlist;
204 204
205 for (i = 0; i < LCLIENT_LIST; ++i) { 205 for (i = 0; i < LCLIENT_LIST; ++i) {
@@ -285,7 +285,7 @@ int replace_bad( Client_data * list,
285 IP_Port ip_port ) 285 IP_Port ip_port )
286{ 286{
287 uint32_t i; 287 uint32_t i;
288 int64_t temp_time = unix_time(); 288 uint64_t temp_time = unix_time();
289 for(i = 0; i < length; ++i) { 289 for(i = 0; i < length; ++i) {
290 /* if node is bad */ 290 /* if node is bad */
291 if(list[i].timestamp + BAD_NODE_TIMEOUT < temp_time) { 291 if(list[i].timestamp + BAD_NODE_TIMEOUT < temp_time) {
@@ -310,7 +310,7 @@ int replace_good( Client_data * list,
310 uint8_t * comp_client_id ) 310 uint8_t * comp_client_id )
311{ 311{
312 uint32_t i; 312 uint32_t i;
313 int64_t temp_time = unix_time(); 313 uint64_t temp_time = unix_time();
314 314
315 for(i = 0; i < length; ++i) 315 for(i = 0; i < length; ++i)
316 if(id_closest(comp_client_id, list[i].client_id, client_id) == 2) { 316 if(id_closest(comp_client_id, list[i].client_id, client_id) == 2) {
@@ -374,7 +374,7 @@ void addto_lists(IP_Port ip_port, uint8_t * client_id)
374void returnedip_ports(IP_Port ip_port, uint8_t * client_id, uint8_t * nodeclient_id) 374void returnedip_ports(IP_Port ip_port, uint8_t * client_id, uint8_t * nodeclient_id)
375{ 375{
376 uint32_t i, j; 376 uint32_t i, j;
377 int64_t temp_time = unix_time(); 377 uint64_t temp_time = unix_time();
378 378
379 if (memcmp(client_id, self_public_key, CLIENT_ID_SIZE) == 0) { 379 if (memcmp(client_id, self_public_key, CLIENT_ID_SIZE) == 0) {
380 for (i = 0; i < LCLIENT_LIST; ++i) { 380 for (i = 0; i < LCLIENT_LIST; ++i) {
@@ -416,7 +416,7 @@ int is_pinging(IP_Port ip_port, uint64_t ping_id)
416{ 416{
417 uint32_t i; 417 uint32_t i;
418 uint8_t pinging; 418 uint8_t pinging;
419 int64_t temp_time = unix_time(); 419 uint64_t temp_time = unix_time();
420 420
421 for (i = 0; i < LPING_ARRAY; ++i ) { 421 for (i = 0; i < LPING_ARRAY; ++i ) {
422 if ((pings[i].timestamp + PING_TIMEOUT) > temp_time) { 422 if ((pings[i].timestamp + PING_TIMEOUT) > temp_time) {
@@ -440,7 +440,7 @@ int is_gettingnodes(IP_Port ip_port, uint64_t ping_id)
440{ 440{
441 uint32_t i; 441 uint32_t i;
442 uint8_t pinging; 442 uint8_t pinging;
443 int64_t temp_time = unix_time(); 443 uint64_t temp_time = unix_time();
444 444
445 for(i = 0; i < LSEND_NODES_ARRAY; ++i ) { 445 for(i = 0; i < LSEND_NODES_ARRAY; ++i ) {
446 if((send_nodes[i].timestamp + PING_TIMEOUT) > temp_time) { 446 if((send_nodes[i].timestamp + PING_TIMEOUT) > temp_time) {
@@ -469,7 +469,7 @@ uint64_t add_pinging(IP_Port ip_port)
469{ 469{
470 uint32_t i, j; 470 uint32_t i, j;
471 uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int(); 471 uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int();
472 int64_t temp_time = unix_time(); 472 uint64_t temp_time = unix_time();
473 473
474 474
475 for(i = 0; i < PING_TIMEOUT; ++i ) { 475 for(i = 0; i < PING_TIMEOUT; ++i ) {
@@ -491,7 +491,7 @@ uint64_t add_gettingnodes(IP_Port ip_port)
491{ 491{
492 uint32_t i, j; 492 uint32_t i, j;
493 uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int(); 493 uint64_t ping_id = ((uint64_t)random_int() << 32) + random_int();
494 int64_t temp_time = unix_time(); 494 uint64_t temp_time = unix_time();
495 495
496 for(i = 0; i < PING_TIMEOUT; ++i ) { 496 for(i = 0; i < PING_TIMEOUT; ++i ) {
497 for(j = 0; j < LSEND_NODES_ARRAY; ++j ) { 497 for(j = 0; j < LSEND_NODES_ARRAY; ++j ) {
@@ -831,7 +831,7 @@ int DHT_delfriend(uint8_t * client_id)
831IP_Port DHT_getfriendip(uint8_t * client_id) 831IP_Port DHT_getfriendip(uint8_t * client_id)
832{ 832{
833 uint32_t i, j; 833 uint32_t i, j;
834 int64_t temp_time = unix_time(); 834 uint64_t temp_time = unix_time();
835 IP_Port empty = {{{0}}, 0}; 835 IP_Port empty = {{{0}}, 0};
836 836
837 for (i = 0; i < num_friends; ++i) { 837 for (i = 0; i < num_friends; ++i) {
@@ -857,7 +857,7 @@ IP_Port DHT_getfriendip(uint8_t * client_id)
857void doDHTFriends() 857void doDHTFriends()
858{ 858{
859 uint32_t i, j; 859 uint32_t i, j;
860 int64_t temp_time = unix_time(); 860 uint64_t temp_time = unix_time();
861 uint32_t rand_node; 861 uint32_t rand_node;
862 uint32_t index[MAX_FRIEND_CLIENTS]; 862 uint32_t index[MAX_FRIEND_CLIENTS];
863 863
@@ -888,7 +888,7 @@ void doDHTFriends()
888 } 888 }
889} 889}
890 890
891static uint32_t close_lastgetnodes; 891static uint64_t close_lastgetnodes;
892 892
893/* Ping each client in the close nodes list every 60 seconds. 893/* Ping each client in the close nodes list every 60 seconds.
894 * Send a get nodes request every 20 seconds to a random good node in the list. 894 * Send a get nodes request every 20 seconds to a random good node in the list.
@@ -896,7 +896,7 @@ static uint32_t close_lastgetnodes;
896void doClose() 896void doClose()
897{ 897{
898 uint32_t i; 898 uint32_t i;
899 int64_t temp_time = unix_time(); 899 uint64_t temp_time = unix_time();
900 uint32_t num_nodes = 0; 900 uint32_t num_nodes = 0;
901 uint32_t rand_node; 901 uint32_t rand_node;
902 uint32_t index[LCLIENT_LIST]; 902 uint32_t index[LCLIENT_LIST];
@@ -954,7 +954,7 @@ static int friend_iplist(IP_Port * ip_portlist, uint16_t friend_num)
954{ 954{
955 int num_ips = 0; 955 int num_ips = 0;
956 uint32_t i; 956 uint32_t i;
957 int64_t temp_time = unix_time(); 957 uint64_t temp_time = unix_time();
958 958
959 if (friend_num >= num_friends) 959 if (friend_num >= num_friends)
960 return -1; 960 return -1;
@@ -989,7 +989,7 @@ int route_tofriend(uint8_t * friend_id, uint8_t * packet, uint32_t length)
989 return 0; 989 return 0;
990 990
991 uint32_t i, sent = 0; 991 uint32_t i, sent = 0;
992 int64_t temp_time = unix_time(); 992 uint64_t temp_time = unix_time();
993 Friend * friend = &friends_list[num]; 993 Friend * friend = &friends_list[num];
994 Client_data * client; 994 Client_data * client;
995 995
@@ -1022,7 +1022,7 @@ int routeone_tofriend(uint8_t * friend_id, uint8_t * packet, uint32_t length)
1022 IP_Port ip_list[MAX_FRIEND_CLIENTS]; 1022 IP_Port ip_list[MAX_FRIEND_CLIENTS];
1023 int n = 0; 1023 int n = 0;
1024 uint32_t i; 1024 uint32_t i;
1025 int64_t temp_time = unix_time(); 1025 uint64_t temp_time = unix_time();
1026 1026
1027 for (i = 0; i < MAX_FRIEND_CLIENTS; ++i) { 1027 for (i = 0; i < MAX_FRIEND_CLIENTS; ++i) {
1028 client = &friend->client_list[i]; 1028 client = &friend->client_list[i];
@@ -1196,7 +1196,7 @@ static void punch_holes(IP ip, uint16_t * port_list, uint16_t numports, uint16_t
1196static void doNAT() 1196static void doNAT()
1197{ 1197{
1198 uint32_t i; 1198 uint32_t i;
1199 int64_t temp_time = unix_time(); 1199 uint64_t temp_time = unix_time();
1200 1200
1201 for (i = 0; i < num_friends; ++i) { 1201 for (i = 0; i < num_friends; ++i) {
1202 IP_Port ip_list[MAX_FRIEND_CLIENTS]; 1202 IP_Port ip_list[MAX_FRIEND_CLIENTS];
@@ -1291,7 +1291,7 @@ int DHT_load(uint8_t * data, uint32_t size)
1291 1291
1292 uint32_t i, j; 1292 uint32_t i, j;
1293 uint16_t temp; 1293 uint16_t temp;
1294 /* int64_t temp_time = unix_time(); */ 1294 /* uint64_t temp_time = unix_time(); */
1295 1295
1296 Client_data * client; 1296 Client_data * client;
1297 1297
@@ -1326,7 +1326,7 @@ int DHT_load(uint8_t * data, uint32_t size)
1326int DHT_isconnected() 1326int DHT_isconnected()
1327{ 1327{
1328 uint32_t i; 1328 uint32_t i;
1329 int64_t temp_time = unix_time(); 1329 uint64_t temp_time = unix_time();
1330 1330
1331 for(i = 0; i < LCLIENT_LIST; ++i) { 1331 for(i = 0; i < LCLIENT_LIST; ++i) {
1332 if(close_clientlist[i].timestamp + BAD_NODE_TIMEOUT > temp_time) 1332 if(close_clientlist[i].timestamp + BAD_NODE_TIMEOUT > temp_time)