summaryrefslogtreecommitdiff
path: root/protocols
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2019-03-05 14:31:44 +0300
committerGeorge Hazan <ghazan@miranda.im>2019-03-05 14:31:44 +0300
commit300935cc22700e2ff3607fb3d0e06ac496ad6fcd (patch)
tree8bc656cd8474ddf1ec545b91f1491d325275e817 /protocols
parent4e61f273091ef5050ead326c809237d66417cd06 (diff)
fixes #1877 (ICQ-WIM doesn't close session correctly in some cases)
Diffstat (limited to 'protocols')
-rw-r--r--protocols/ICQ-WIM/src/poll.cpp2
-rw-r--r--protocols/ICQ-WIM/src/proto.cpp5
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);