diff options
author | George Hazan <ghazan@miranda.im> | 2018-03-08 13:58:24 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2018-03-08 13:58:31 +0300 |
commit | 6206d9efcead4e4cd92df1b6c9bb0150d13052cc (patch) | |
tree | 780e6bee288a40d65886d374af6a116a0dc89ea7 /protocols/IcqOscarJ/src/fam_15icqserver.cpp | |
parent | 7b5a7da18a7834e9eb3aaa25cad0f256491c90ee (diff) |
fixes #1154 (Invisible" status is broken)
This reverts commit 1ca493fc7af16dd20ad13453fc19774da3c65181.
Diffstat (limited to 'protocols/IcqOscarJ/src/fam_15icqserver.cpp')
-rw-r--r-- | protocols/IcqOscarJ/src/fam_15icqserver.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/protocols/IcqOscarJ/src/fam_15icqserver.cpp b/protocols/IcqOscarJ/src/fam_15icqserver.cpp index 0bce60710f..3a58297543 100644 --- a/protocols/IcqOscarJ/src/fam_15icqserver.cpp +++ b/protocols/IcqOscarJ/src/fam_15icqserver.cpp @@ -857,6 +857,23 @@ void CIcqProto::parseDirectoryUserDetailsData(MCONTACT hContact, oscar_tlv_chain writeDbInfoSettingTLVStringUtf(hContact, "About", cDetails, 0x186);
+ // if (hContact)
+ // writeDbInfoSettingTLVStringUtf(hContact, DBSETTING_STATUS_NOTE, cDetails, 0x226);
+ // else
+ if (!hContact) { // Owner contact needs special processing, in the database is current status note for the client
+ // We just received the last status note set on directory, if it differs call SetStatusNote() to
+ // ensure the directory will be updated (it should be in process anyway)
+ char *szClientStatusNote = getSettingStringUtf(hContact, DBSETTING_STATUS_NOTE, nullptr);
+ char *szDirectoryStatusNote = cDetails->getString(0x226, 1);
+
+ if (mir_strcmp(szClientStatusNote, szDirectoryStatusNote))
+ SetStatusNote(szClientStatusNote, 1000, TRUE);
+
+ // Release memory
+ SAFE_FREE(&szDirectoryStatusNote);
+ SAFE_FREE(&szClientStatusNote);
+ }
+
writeDbInfoSettingTLVByte(hContact, "PrivacyLevel", cDetails, 0x1F9);
if (!hContact) {
|