summaryrefslogtreecommitdiff
path: root/protocols/Facebook
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Facebook')
-rw-r--r--protocols/Facebook/src/proto.cpp2
-rw-r--r--protocols/Facebook/src/server.cpp13
2 files changed, 8 insertions, 7 deletions
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();
}
/////////////////////////////////////////////////////////////////////////////////////////