From f1e65ee68af73283b4b23c447ec2a4672dae4691 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 27 Jan 2014 19:37:04 +0000 Subject: fix for MRA Mobile detection git-svn-id: http://svn.miranda-ng.org/main/trunk@7919 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/MRA/src/Mra_functions.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'protocols') diff --git a/protocols/MRA/src/Mra_functions.cpp b/protocols/MRA/src/Mra_functions.cpp index c1f65f4d5c..877bf108c6 100644 --- a/protocols/MRA/src/Mra_functions.cpp +++ b/protocols/MRA/src/Mra_functions.cpp @@ -66,14 +66,25 @@ CMStringA MraGetVersionStringFromFormatted(const CMStringA &szUserAgentFormatted CMStringA res, tmp; - if ( !GetParamValue(szUserAgentFormatted, "name", 4, tmp)) + if (!GetParamValue(szUserAgentFormatted, "name", 4, tmp)) if (tmp == "Miranda IM" || tmp == "Miranda NG") { GetParamValue(szUserAgentFormatted, "title", 5, res); return res; } - if ( !GetParamValue(szUserAgentFormatted, "client", 6, tmp)) + if (!GetParamValue(szUserAgentFormatted, "client", 6, tmp)) { + if (tmp == "wmagent") + tmp = "MobileAgent for WM"; + else if (tmp == "jagent") + tmp = "MobileAgent for Java"; + else if (tmp == "android") + tmp = "MobileAgent for Android"; + else if (tmp == "iphoneagent") + tmp = "MobileAgent for Iphone"; + else if (tmp == "sagent") + tmp = "MobileAgent for Symbian"; res += tmp + " "; + } if ( !GetParamValue(szUserAgentFormatted, "name", 4, tmp)) res += tmp + " "; @@ -537,13 +548,13 @@ HANDLE CMraProto::MraHContactFromEmail(const CMStringA& szEmail, BOOL bAddIfNeed } if (hContact) { - if ( IsEMailChatAgent(szEmail)) - SetContactBasicInfoW(hContact, SCBIFSI_LOCK_CHANGES_EVENTS, (SCBIF_ID|SCBIF_GROUP_ID|SCBIF_SERVER_FLAG|SCBIF_STATUS|SCBIF_EMAIL), -1, -1, 0, CONTACT_INTFLAG_NOT_AUTHORIZED, ID_STATUS_ONLINE, &szEmail, 0, 0); + if (IsEMailChatAgent(szEmail)) + SetContactBasicInfoW(hContact, SCBIFSI_LOCK_CHANGES_EVENTS, (SCBIF_ID | SCBIF_GROUP_ID | SCBIF_SERVER_FLAG | SCBIF_STATUS | SCBIF_EMAIL), -1, -1, 0, CONTACT_INTFLAG_NOT_AUTHORIZED, ID_STATUS_ONLINE, &szEmail, 0, 0); else { if (bTemporary) db_set_b(hContact, "CList", "NotOnList", 1); mraSetStringExA(hContact, "MirVer", MIRVER_UNKNOWN); - SetContactBasicInfoW(hContact, SCBIFSI_LOCK_CHANGES_EVENTS, (SCBIF_ID|SCBIF_GROUP_ID|SCBIF_SERVER_FLAG|SCBIF_STATUS|SCBIF_EMAIL), -1, -1, 0, CONTACT_INTFLAG_NOT_AUTHORIZED, ID_STATUS_OFFLINE, &szEmail, 0, 0); + SetContactBasicInfoW(hContact, SCBIFSI_LOCK_CHANGES_EVENTS, (SCBIF_ID | SCBIF_GROUP_ID | SCBIF_SERVER_FLAG | SCBIF_STATUS | SCBIF_EMAIL), -1, -1, 0, CONTACT_INTFLAG_NOT_AUTHORIZED, ID_STATUS_OFFLINE, &szEmail, 0, 0); } } } -- cgit v1.2.3