diff options
Diffstat (limited to 'toxcore/Messenger.c')
-rw-r--r-- | toxcore/Messenger.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index dc0e605a..4d4b82c1 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c | |||
@@ -384,12 +384,12 @@ int m_delfriend(Messenger *m, int32_t friendnumber) | |||
384 | clear_receipts(m, friendnumber); | 384 | clear_receipts(m, friendnumber); |
385 | remove_request_received(&(m->fr), m->friendlist[friendnumber].real_pk); | 385 | remove_request_received(&(m->fr), m->friendlist[friendnumber].real_pk); |
386 | friend_connection_callbacks(m->fr_c, m->friendlist[friendnumber].friendcon_id, MESSENGER_CALLBACK_INDEX, 0, 0, 0, 0, 0); | 386 | friend_connection_callbacks(m->fr_c, m->friendlist[friendnumber].friendcon_id, MESSENGER_CALLBACK_INDEX, 0, 0, 0, 0, 0); |
387 | kill_friend_connection(m->fr_c, m->friendlist[friendnumber].friendcon_id); | ||
388 | 387 | ||
389 | if (friend_con_connected(m->fr_c, m->friendlist[friendnumber].friendcon_id) == FRIENDCONN_STATUS_CONNECTED) { | 388 | if (friend_con_connected(m->fr_c, m->friendlist[friendnumber].friendcon_id) == FRIENDCONN_STATUS_CONNECTED) { |
390 | send_offline_packet(m, m->friendlist[friendnumber].friendcon_id); | 389 | send_offline_packet(m, m->friendlist[friendnumber].friendcon_id); |
391 | } | 390 | } |
392 | 391 | ||
392 | kill_friend_connection(m->fr_c, m->friendlist[friendnumber].friendcon_id); | ||
393 | memset(&(m->friendlist[friendnumber]), 0, sizeof(Friend)); | 393 | memset(&(m->friendlist[friendnumber]), 0, sizeof(Friend)); |
394 | uint32_t i; | 394 | uint32_t i; |
395 | 395 | ||
@@ -864,6 +864,11 @@ static void check_friend_connectionstatus(Messenger *m, int32_t friendnumber, ui | |||
864 | if (was_online) { | 864 | if (was_online) { |
865 | break_files(m, friendnumber); | 865 | break_files(m, friendnumber); |
866 | clear_receipts(m, friendnumber); | 866 | clear_receipts(m, friendnumber); |
867 | } else { | ||
868 | m->friendlist[friendnumber].name_sent = 0; | ||
869 | m->friendlist[friendnumber].userstatus_sent = 0; | ||
870 | m->friendlist[friendnumber].statusmessage_sent = 0; | ||
871 | m->friendlist[friendnumber].user_istyping_sent = 0; | ||
867 | } | 872 | } |
868 | 873 | ||
869 | m->friendlist[friendnumber].status = status; | 874 | m->friendlist[friendnumber].status = status; |
@@ -1891,10 +1896,6 @@ static int handle_status(void *object, int i, uint8_t status) | |||
1891 | 1896 | ||
1892 | if (status) { /* Went online. */ | 1897 | if (status) { /* Went online. */ |
1893 | send_online_packet(m, i); | 1898 | send_online_packet(m, i); |
1894 | m->friendlist[i].name_sent = 0; | ||
1895 | m->friendlist[i].userstatus_sent = 0; | ||
1896 | m->friendlist[i].statusmessage_sent = 0; | ||
1897 | m->friendlist[i].user_istyping_sent = 0; | ||
1898 | } else { /* Went offline. */ | 1899 | } else { /* Went offline. */ |
1899 | if (m->friendlist[i].status == FRIEND_ONLINE) { | 1900 | if (m->friendlist[i].status == FRIEND_ONLINE) { |
1900 | set_friend_status(m, i, FRIEND_CONFIRMED); | 1901 | set_friend_status(m, i, FRIEND_CONFIRMED); |