summaryrefslogtreecommitdiff
path: root/toxcore/onion_client.c
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2014-11-20 21:30:16 -0500
committerirungentoo <irungentoo@gmail.com>2014-11-20 21:30:16 -0500
commit057f08fb135656e13fff0fd48557b699fb65fd5c (patch)
tree7c2e42a48f7a73f94268cef66e5097e880c6c084 /toxcore/onion_client.c
parent1ef2092bcca76158b6ea0675c9e07fef166363b6 (diff)
Tox clients now should show they are offline with much better precision.
Diffstat (limited to 'toxcore/onion_client.c')
-rw-r--r--toxcore/onion_client.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/toxcore/onion_client.c b/toxcore/onion_client.c
index d22b2c8b..fda230b7 100644
--- a/toxcore/onion_client.c
+++ b/toxcore/onion_client.c
@@ -572,6 +572,8 @@ static int handle_announce_response(void *object, IP_Port source, const uint8_t
572 return 1; 572 return 1;
573 } 573 }
574 574
575 //TODO: LAN vs non LAN ips?, if we are connected only to LAN, are we offline?
576 onion_c->last_packet_recv = unix_time();
575 return 0; 577 return 0;
576} 578}
577 579
@@ -1104,8 +1106,10 @@ int onion_set_friend_online(Onion_Client *onion_c, int friend_num, uint8_t is_on
1104 onion_c->friends_list[friend_num].is_online = is_online; 1106 onion_c->friends_list[friend_num].is_online = is_online;
1105 1107
1106 /* This should prevent some clock related issues */ 1108 /* This should prevent some clock related issues */
1107 if (!is_online) 1109 if (!is_online) {
1108 onion_c->friends_list[friend_num].last_noreplay = 0; 1110 onion_c->friends_list[friend_num].last_noreplay = 0;
1111 onion_c->friends_list[friend_num].run_count = 0;
1112 }
1109 1113
1110 return 0; 1114 return 0;
1111} 1115}
@@ -1332,6 +1336,9 @@ int onion_isconnected(const Onion_Client *onion_c)
1332{ 1336{
1333 unsigned int i, num = 0, announced = 0; 1337 unsigned int i, num = 0, announced = 0;
1334 1338
1339 if (is_timeout(onion_c->last_packet_recv, ONION_OFFLINE_TIMEOUT))
1340 return 0;
1341
1335 for (i = 0; i < MAX_ONION_CLIENTS; ++i) { 1342 for (i = 0; i < MAX_ONION_CLIENTS; ++i) {
1336 if (!is_timeout(onion_c->clients_announce_list[i].timestamp, ONION_NODE_TIMEOUT)) { 1343 if (!is_timeout(onion_c->clients_announce_list[i].timestamp, ONION_NODE_TIMEOUT)) {
1337 ++num; 1344 ++num;