From 1d5715ed627f0575c64b41765b2b574191c4f512 Mon Sep 17 00:00:00 2001
From: Gluzskiy Alexandr <sss@sss.chaoslab.ru>
Date: Sun, 1 Jul 2018 08:02:48 +0300
Subject: protocols: jabber: xep-0198 	- additional counters reset before
 clean enabling to avoid inconsistent counters state

---
 protocols/JabberG/src/jabber_strm_mgmt.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'protocols/JabberG')

diff --git a/protocols/JabberG/src/jabber_strm_mgmt.cpp b/protocols/JabberG/src/jabber_strm_mgmt.cpp
index 10a1172e70..8fcd128f73 100755
--- a/protocols/JabberG/src/jabber_strm_mgmt.cpp
+++ b/protocols/JabberG/src/jabber_strm_mgmt.cpp
@@ -186,6 +186,8 @@ void strm_mgmt::OnProcessFailed(HXML node, ThreadData * info) //used failed inst
 
 void strm_mgmt::CheckStreamFeatures(HXML node)
 {
+	if (!IsResumeIdPresent())
+		ResetState(); //this may be necessary to reset counters if session resume id is not set
 	if (mir_wstrcmp(XmlGetName(node), L"sm") || !XmlGetAttrValue(node, L"xmlns") || mir_wstrcmp(XmlGetAttrValue(node, L"xmlns"), L"urn:xmpp:sm:3")) //we work only with version 3 or higher of sm
 		return;
 	if (!(proto->m_bJabberOnline))
@@ -244,7 +246,7 @@ void strm_mgmt::EnableStrmMgmt()
 		XmlAddAttr(enable_sm, L"xmlns", L"urn:xmpp:sm:3");
 		XmlAddAttr(enable_sm, L"resume", L"true"); //enable resumption (most useful part of this xep)
 		proto->m_ThreadInfo->send(enable_sm);
-		m_nStrmMgmtLocalSCount = 1; //TODO: this MUST be 0, i have bug somewhere.
+		m_nStrmMgmtLocalSCount = 1; //TODO: this MUST be 0, i have bug somewhere, feel free to fix it.
 	}
 	else //resume session
 	{
-- 
cgit v1.2.3