summaryrefslogtreecommitdiff
path: root/protocols
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2019-06-27 13:44:31 +0300
committerGeorge Hazan <ghazan@miranda.im>2019-06-27 13:44:31 +0300
commit2e870dc1d64bdf100c46b2bedc0a8453342f1b34 (patch)
treeb231e1165990c46a6fb0808650951e3e597d2b28 /protocols
parent8a57021372287690973dc13cbcd9dd41946cc6f9 (diff)
fixes #1996 (ICQ-WIM doesn't retrieve avatars, if they were occasionally removed from disk)
Diffstat (limited to 'protocols')
-rw-r--r--protocols/ICQ-WIM/src/server.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/protocols/ICQ-WIM/src/server.cpp b/protocols/ICQ-WIM/src/server.cpp
index f21860049e..ef794cab5a 100644
--- a/protocols/ICQ-WIM/src/server.cpp
+++ b/protocols/ICQ-WIM/src/server.cpp
@@ -26,14 +26,19 @@ void CIcqProto::CheckAvatarChange(MCONTACT hContact, const JSONNode &ev)
{
CMStringW wszIconId(ev["iconId"].as_mstring());
CMStringW oldIconID(getMStringW(hContact, "IconId"));
- if (wszIconId != oldIconID) {
- setWString(hContact, "IconId", wszIconId);
-
- CMStringA szUrl(ev["buddyIcon"].as_mstring());
- auto *pReq = new AsyncHttpRequest(CONN_MAIN, REQUEST_GET, szUrl, &CIcqProto::OnReceiveAvatar);
- pReq->hContact = hContact;
- Push(pReq);
+ if (wszIconId == oldIconID) {
+ wchar_t wszFullName[MAX_PATH];
+ GetAvatarFileName(hContact, wszFullName, _countof(wszFullName));
+ if (_waccess(wszFullName, 0) == 0)
+ return;
}
+
+ setWString(hContact, "IconId", wszIconId);
+
+ CMStringA szUrl(ev["buddyIcon"].as_mstring());
+ auto *pReq = new AsyncHttpRequest(CONN_MAIN, REQUEST_GET, szUrl, &CIcqProto::OnReceiveAvatar);
+ pReq->hContact = hContact;
+ Push(pReq);
}
void CIcqProto::CheckLastId(MCONTACT hContact, const JSONNode &ev)