diff options
-rw-r--r-- | protocols/ICQ-WIM/src/server.cpp | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/protocols/ICQ-WIM/src/server.cpp b/protocols/ICQ-WIM/src/server.cpp index 2bc5723a80..6a7ac4a7c5 100644 --- a/protocols/ICQ-WIM/src/server.cpp +++ b/protocols/ICQ-WIM/src/server.cpp @@ -25,20 +25,25 @@ void CIcqProto::CheckAvatarChange(MCONTACT hContact, const JSONNode &ev) { CMStringW wszIconId(ev["iconId"].as_mstring()); - CMStringW oldIconID(getMStringW(hContact, "IconId")); - if (wszIconId == oldIconID) { - wchar_t wszFullName[MAX_PATH]; - GetAvatarFileName(hContact, wszFullName, _countof(wszFullName)); - if (_waccess(wszFullName, 0) == 0) - return; - } + if (!wszIconId.IsEmpty()) { + CMStringW oldIconID(getMStringW(hContact, "IconId")); + if (wszIconId == oldIconID) { + wchar_t wszFullName[MAX_PATH]; + GetAvatarFileName(hContact, wszFullName, _countof(wszFullName)); + if (_waccess(wszFullName, 0) == 0) + return; + } - setWString(hContact, "IconId", wszIconId); + setWString(hContact, "IconId", wszIconId); + } + else delSetting(hContact, "IconId"); CMStringA szUrl(ev["buddyIcon"].as_mstring()); - auto *pReq = new AsyncHttpRequest(CONN_MAIN, REQUEST_GET, szUrl, &CIcqProto::OnReceiveAvatar); - pReq->hContact = hContact; - Push(pReq); + if (!szUrl.IsEmpty()) { + auto *pReq = new AsyncHttpRequest(CONN_MAIN, REQUEST_GET, szUrl, &CIcqProto::OnReceiveAvatar); + pReq->hContact = hContact; + Push(pReq); + } } void CIcqProto::CheckLastId(MCONTACT hContact, const JSONNode &ev) |