summaryrefslogtreecommitdiff
path: root/protocols/MRA/src/Mra_proto.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/MRA/src/Mra_proto.cpp')
-rw-r--r--protocols/MRA/src/Mra_proto.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/protocols/MRA/src/Mra_proto.cpp b/protocols/MRA/src/Mra_proto.cpp
index 6dd55cb135..2d268d7e86 100644
--- a/protocols/MRA/src/Mra_proto.cpp
+++ b/protocols/MRA/src/Mra_proto.cpp
@@ -673,8 +673,15 @@ bool CMraProto::CmdUserStatus(BinBuffer &buf)
MraContactCapabilitiesSet(hContact, dwFutureFlags);
setByte(hContact, DBSETTING_XSTATUSID, (BYTE)dwXStatus);
- mraSetStringW(hContact, DBSETTING_XSTATUSNAME, szStatusTitle);
- mraSetStringW(hContact, DBSETTING_XSTATUSMSG, szStatusDesc);
+ if (dwXStatus) {
+ mraSetStringW(hContact, DBSETTING_XSTATUSNAME, szStatusTitle);
+ mraSetStringW(hContact, DBSETTING_XSTATUSMSG, szStatusDesc);
+ }
+ else {
+ delSetting(hContact, DBSETTING_XSTATUSNAME);
+ delSetting(hContact, DBSETTING_XSTATUSMSG);
+ }
+
if (dwTemp != ID_STATUS_OFFLINE) { // пишем клиента только если юзер не отключён, иначе не затираем старое
if (!szUserAgentFormatted.IsEmpty()) {