From f90e419d6684dcb9d04ab4069902c74ed1d631a7 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 3 Apr 2022 18:31:20 +0300 Subject: fixes #3064 (Jabber: "Identity" hidden option spoofs only discovery but not user info) --- protocols/JabberG/src/jabber_iq_handlers.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/protocols/JabberG/src/jabber_iq_handlers.cpp b/protocols/JabberG/src/jabber_iq_handlers.cpp index 8aaaee167c..6d0d2e099e 100644 --- a/protocols/JabberG/src/jabber_iq_handlers.cpp +++ b/protocols/JabberG/src/jabber_iq_handlers.cpp @@ -38,14 +38,22 @@ bool CJabberProto::OnIqRequestVersion(const TiXmlElement*, CJabberIqInfo *pInfo) XmlNodeIq iq("result", pInfo); TiXmlElement *query = iq << XQUERY(JABBER_FEAT_VERSION); - query << XCHILD("name", "Miranda NG Jabber"); - query << XCHILD("version", szCoreVersion); - - if (m_bShowOSVersion) { - char os[256]; - if (!OS_GetDisplayString(os, _countof(os))) - mir_strncpy(os, "Microsoft Windows", _countof(os)); - query << XCHILD("os", os); + + CMStringA szName(getMStringA("Identity")); // hidden setting to be entered from dbeditor++ + if (!szName.IsEmpty()) { + query << XCHILD("name", szName); + query << XCHILD("version", "0.1"); + } + else { + query << XCHILD("name", "Miranda NG Jabber"); + query << XCHILD("version", szCoreVersion); + + if (m_bShowOSVersion) { + char os[256]; + if (!OS_GetDisplayString(os, _countof(os))) + mir_strncpy(os, "Microsoft Windows", _countof(os)); + query << XCHILD("os", os); + } } m_ThreadInfo->send(iq); -- cgit v1.2.3