From 7937e21de4d288fc45d3b1a4b30ccb801df70b3d Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 3 Jan 2020 20:09:05 +0300 Subject: OnLoggedOut to be called in the ServerThread, as the only safe place to do that --- protocols/Facebook/src/proto.cpp | 2 +- protocols/Facebook/src/server.cpp | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) (limited to 'protocols/Facebook/src') diff --git a/protocols/Facebook/src/proto.cpp b/protocols/Facebook/src/proto.cpp index d3c1355fe3..b2e97d901e 100644 --- a/protocols/Facebook/src/proto.cpp +++ b/protocols/Facebook/src/proto.cpp @@ -226,7 +226,7 @@ int FacebookProto::SetStatus(int iNewStatus) // log off & free all resources if (iNewStatus == ID_STATUS_OFFLINE) { - OnLoggedOut(); + OnShutdown(); m_iStatus = ID_STATUS_OFFLINE; } diff --git a/protocols/Facebook/src/server.cpp b/protocols/Facebook/src/server.cpp index 8f6ac2cbcb..f1b6acd9ce 100644 --- a/protocols/Facebook/src/server.cpp +++ b/protocols/Facebook/src/server.cpp @@ -26,7 +26,8 @@ void FacebookProto::ConnectionFailed() m_iStatus = m_iDesiredStatus = ID_STATUS_OFFLINE; ProtoBroadcastAck(0, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)m_iStatus, m_iDesiredStatus); - OnLoggedOut(); + + OnShutdown(); } void FacebookProto::OnLoggedIn() @@ -86,10 +87,12 @@ void FacebookProto::OnLoggedIn() void FacebookProto::OnLoggedOut() { - OnShutdown(); - m_impl.m_heartBeat.Stop(); m_bOnline = false; + + ProtoBroadcastAck(0, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)m_iStatus, ID_STATUS_OFFLINE); + m_iStatus = m_iDesiredStatus = ID_STATUS_OFFLINE; + setAllContactStatuses(ID_STATUS_OFFLINE); } @@ -254,9 +257,7 @@ LBL_Begin: Netlib_CloseHandle(m_mqttConn); m_mqttConn = nullptr; - int oldStatus = m_iStatus; - m_iDesiredStatus = m_iStatus = ID_STATUS_OFFLINE; - ProtoBroadcastAck(0, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)oldStatus, m_iStatus); + OnLoggedOut(); } ///////////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3