diff options
-rw-r--r-- | protocols/ICQ-WIM/src/poll.cpp | 2 | ||||
-rw-r--r-- | protocols/ICQ-WIM/src/proto.cpp | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/protocols/ICQ-WIM/src/poll.cpp b/protocols/ICQ-WIM/src/poll.cpp index 9b64bbd99b..d04d7184bb 100644 --- a/protocols/ICQ-WIM/src/poll.cpp +++ b/protocols/ICQ-WIM/src/poll.cpp @@ -114,6 +114,8 @@ void CIcqProto::ProcessEvent(const JSONNode &ev) ProcessPermissions(pData); else if (szType == L"presence") ProcessPresence(pData); + else if (szType == L"sessionEnded") + ShutdownSession(); else if (szType == L"typing") ProcessTyping(pData); } diff --git a/protocols/ICQ-WIM/src/proto.cpp b/protocols/ICQ-WIM/src/proto.cpp index 1d01af5dc4..1e6057af82 100644 --- a/protocols/ICQ-WIM/src/proto.cpp +++ b/protocols/ICQ-WIM/src/proto.cpp @@ -451,10 +451,9 @@ int CIcqProto::SetStatus(int iNewStatus) // go offline if (iNewStatus == ID_STATUS_OFFLINE) { - if (m_bOnline) { + if (m_bOnline) SetServerStatus(ID_STATUS_OFFLINE); - ShutdownSession(); - } + m_iStatus = m_iDesiredStatus; setAllContactStatuses(ID_STATUS_OFFLINE, false); |