summaryrefslogtreecommitdiff
path: root/protocols/Icq10/src/server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Icq10/src/server.cpp')
-rw-r--r--protocols/Icq10/src/server.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/protocols/Icq10/src/server.cpp b/protocols/Icq10/src/server.cpp
index 5e091d6921..d11e2301ac 100644
--- a/protocols/Icq10/src/server.cpp
+++ b/protocols/Icq10/src/server.cpp
@@ -623,11 +623,13 @@ void CIcqProto::ProcessHistData(const JSONNode &ev)
__int64 lastMsgId = getId(hContact, "LastMsgId");
__int64 srvlastId = _wtoi64(ev["lastMsgId"].as_mstring());
- if (srvlastId > lastMsgId)
+
+ // on first start we don't load history not to create dups
+ if (lastMsgId == 0)
+ setId(hContact, "LastMsgId", srvlastId);
+ // or load missing messages if any
+ else if (srvlastId > lastMsgId)
RetrieveUserHistory(hContact, srvlastId, lastMsgId);
-
- for (auto &it : ev["tail"]["messages"])
- ParseMessage(hContact, it);
}
void CIcqProto::ProcessMyInfo(const JSONNode &ev)