summaryrefslogtreecommitdiff
path: root/protocols/JabberG
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2022-07-21 11:59:05 +0300
committerGeorge Hazan <ghazan@miranda.im>2022-07-21 11:59:05 +0300
commit68a22260e569e941ca910547be66017353202735 (patch)
treebabbd9c74fea504bb333b9113e334d9ee62d1ce6 /protocols/JabberG
parent68112c6938e917cc35044121409e6fea434ef6c0 (diff)
Jabber: unneeded method AddDefaultCaps removed
Diffstat (limited to 'protocols/JabberG')
-rw-r--r--protocols/JabberG/src/jabber_caps.cpp81
-rw-r--r--protocols/JabberG/src/jabber_caps.h1
-rw-r--r--protocols/JabberG/src/jabber_proto.cpp1
-rw-r--r--protocols/JabberG/src/jabber_proto.h1
4 files changed, 32 insertions, 52 deletions
diff --git a/protocols/JabberG/src/jabber_caps.cpp b/protocols/JabberG/src/jabber_caps.cpp
index 3c727e4986..15b9e41554 100644
--- a/protocols/JabberG/src/jabber_caps.cpp
+++ b/protocols/JabberG/src/jabber_caps.cpp
@@ -104,26 +104,6 @@ const JabberFeatCapPairExt g_JabberFeatCapPairsExt[] =
const int g_cJabberFeatCapPairsExt = _countof(g_JabberFeatCapPairsExt);
-void CJabberProto::AddDefaultCaps()
-{
- JabberCapsBits myCaps = GetOwnCaps(false);
-
- for (auto &it : g_JabberFeatCapPairsExt)
- if (it.Valid())
- myCaps |= it.jcbCap;
-
- CJabberClientPartialCaps *pCaps = g_clientCapsManager.SetClientCaps(JABBER_CAPS_MIRANDA_NODE, m_szFeaturesCrc, __VERSION_STRING_DOTS, myCaps);
- if (m_bShowOSVersion) {
- char szOsBuffer[256];
- OS_GetDisplayString(szOsBuffer, _countof(szOsBuffer));
-
- pCaps->SetOs("Microsoft Windows");
- pCaps->SetOsVer(szOsBuffer);
- }
- pCaps->SetSoft("Miranda NG Jabber Protocol");
- pCaps->SetSoftMir(szCoreVersion);
-}
-
void CJabberProto::OnIqResultCapsDiscoInfo(const TiXmlElement*, CJabberIqInfo *pInfo)
{
pResourceStatus r(ResourceInfoFromJID(pInfo->GetFrom()));
@@ -164,7 +144,7 @@ void CJabberProto::OnIqResultCapsDiscoInfo(const TiXmlElement*, CJabberIqInfo *p
for (auto *xform : TiXmlFilter(query, "x")) {
// check that this is a form of required type
auto *formType = XmlGetChildText(XmlGetChildByTag(xform, "field", "var", "FORM_TYPE"), "value");
- if (!formType || mir_strcmp(formType, "urn:xmpp:dataforms:softwareinfo"))
+ if (!formType || mir_strcmp(formType, JABBER_FEAT_SOFTWARE_INFO))
continue;
for (auto *field : TiXmlFilter(xform, "field")) {
@@ -322,33 +302,29 @@ bool CJabberProto::HandleCapsInfoRequest(const TiXmlElement *, CJabberIqInfo *pI
query << XATTR("node", szExtCap);
}
- CMStringA szName(getMStringA("Identity")); // hidden setting to be entered from dbeditor++
- if (szName.IsEmpty()) {
- szName.Append("Miranda");
- if (m_bAllowVersionRequests)
- szName.AppendFormat(" %d.%d.%d.%d", __MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM);
- }
+ CMStringA szName(getMStringA("Identity", "Miranda")); // hidden setting to be entered from dbeditor++
+ if (m_bAllowVersionRequests)
+ szName.Append(" " __VERSION_STRING_DOTS);
query << XCHILD("identity") << XATTR("category", "client") << XATTR("type", "pc") << XATTR("name", szName);
for (auto &it : GetSortedFeatStrings(GetOwnCaps())) {
query << XCHILD("feature") << XATTR("var", it);
}
- if (m_bAllowVersionRequests && !szNode) {
+ if (m_bAllowVersionRequests && szNode) {
TiXmlElement *form = query << XCHILDNS("x", JABBER_FEAT_DATA_FORMS) << XATTR("type", "result");
- form << XCHILD("field") << XATTR("var", "FORM_TYPE") << XATTR("type", "hidden")
- << XCHILD("value", "urn:xmpp:dataforms:softwareinfo");
-
- CJabberClientPartialCaps *pCaps = g_clientCapsManager.GetPartialCaps(JABBER_CAPS_MIRANDA_NODE, m_szFeaturesCrc);
- if (pCaps) {
- if (m_bShowOSVersion) {
- form << XCHILD("field") << XATTR("var", "os") << XCHILD("value", pCaps->GetOs());
- form << XCHILD("field") << XATTR("var", "os_version") << XCHILD("value", pCaps->GetOsVer());
+ form << XCHILD("field") << XATTR("var", "FORM_TYPE") << XATTR("type", "hidden") << XCHILD("value", JABBER_FEAT_SOFTWARE_INFO);
+
+ if (m_bShowOSVersion) {
+ char os[256];
+ if (OS_GetDisplayString(os, _countof(os))) {
+ form << XCHILD("field") << XATTR("var", "os") << XCHILD("value", "Microsoft Windows");
+ form << XCHILD("field") << XATTR("var", "os_version") << XCHILD("value", os);
}
- form << XCHILD("field") << XATTR("var", "software") << XCHILD("value", pCaps->GetSoft());
- form << XCHILD("field") << XATTR("var", "software_version") << XCHILD("value", pCaps->GetSoftVer());
- form << XCHILD("field") << XATTR("var", "x-miranda-core-version") << XCHILD("value", pCaps->GetSoftMir());
}
+ form << XCHILD("field") << XATTR("var", "software") << XCHILD("value", "Miranda NG Jabber Protocol");
+ form << XCHILD("field") << XATTR("var", "software_version") << XCHILD("value", __VERSION_STRING_DOTS);
+ form << XCHILD("field") << XATTR("var", "x-miranda-core-version") << XCHILD("value", szCoreVersion);
}
m_ThreadInfo->send(iq);
@@ -401,24 +377,29 @@ void CJabberProto::RequestOldCapsInfo(pResourceStatus &r, const char *fullJid)
void CJabberProto::UpdateFeatHash()
{
- ptrA szName(getStringA("Identity", "Miranda")); // hidden setting to be entered from dbeditor++
- CMStringA feat_buf(FORMAT, "client/pc//%s<", szName.get());
+ CMStringA szName(getMStringA("Identity", "Miranda")); // hidden setting to be entered from dbeditor++
+ if (m_bAllowVersionRequests)
+ szName.AppendFormat(" %s", __VERSION_STRING_DOTS);
+ CMStringA feat_buf(FORMAT, "client/pc//%s<", szName.c_str());
for (auto &it : GetSortedFeatStrings(GetOwnCaps())) {
feat_buf.Append(it);
feat_buf.AppendChar('<');
}
- feat_buf.Append("software_version"); feat_buf.AppendChar('<');
- feat_buf.Append(__VERSION_STRING_DOTS); feat_buf.AppendChar('<');
+ if (m_bAllowVersionRequests) {
+ feat_buf.AppendFormat("%s<", JABBER_FEAT_SOFTWARE_INFO);
- feat_buf.Append("x-miranda-core-version"); feat_buf.AppendChar('<');
- feat_buf.Append(szCoreVersion); feat_buf.AppendChar('<');
-
- char os[256];
- if (OS_GetDisplayString(os, _countof(os))) {
- feat_buf.Append("x-miranda-os-version"); feat_buf.AppendChar('<');
- feat_buf.Append(os); feat_buf.AppendChar('<');
+ if (m_bShowOSVersion) {
+ char os[256];
+ if (OS_GetDisplayString(os, _countof(os))) {
+ feat_buf.Append("os<Microsoft Windows<");
+ feat_buf.AppendFormat("os_version<%s<", os);
+ }
+ }
+ feat_buf.Append("software<Miranda NG Jabber Protocol<");
+ feat_buf.AppendFormat("software_version<%s<", __VERSION_STRING_DOTS);
+ feat_buf.AppendFormat("x-miranda-core-version<%s<", szCoreVersion);
}
uint8_t hash[MIR_SHA1_HASH_SIZE];
diff --git a/protocols/JabberG/src/jabber_caps.h b/protocols/JabberG/src/jabber_caps.h
index b504e7e378..76313d77aa 100644
--- a/protocols/JabberG/src/jabber_caps.h
+++ b/protocols/JabberG/src/jabber_caps.h
@@ -203,6 +203,7 @@ typedef unsigned __int64 JabberCapsBits;
#define JABBER_FEAT_IDLE "urn:xmpp:idle:1"
#define JABBER_FEAT_SERVER_AVATAR "storage:client:avatar"
#define JABBER_FEAT_SID "urn:xmpp:sid:0"
+#define JABBER_FEAT_SOFTWARE_INFO "urn:xmpp:dataforms:softwareinfo"
#define JABBER_FEAT_UPLOAD "urn:xmpp:http:upload"
#define JABBER_FEAT_UPLOAD0 "urn:xmpp:http:upload:0"
diff --git a/protocols/JabberG/src/jabber_proto.cpp b/protocols/JabberG/src/jabber_proto.cpp
index 35c7de8ad4..80f0ccc3af 100644
--- a/protocols/JabberG/src/jabber_proto.cpp
+++ b/protocols/JabberG/src/jabber_proto.cpp
@@ -199,7 +199,6 @@ CJabberProto::CJabberProto(const char *aProtoName, const wchar_t *aUserName) :
m_adhocManager.FillDefaultNodes();
UpdateFeatHash();
- AddDefaultCaps();
IconsInit();
diff --git a/protocols/JabberG/src/jabber_proto.h b/protocols/JabberG/src/jabber_proto.h
index 749060052e..dce3110087 100644
--- a/protocols/JabberG/src/jabber_proto.h
+++ b/protocols/JabberG/src/jabber_proto.h
@@ -422,7 +422,6 @@ struct CJabberProto : public PROTO<CJabberProto>, public IJabberInterface
CMStringA m_szFeaturesCrc;
- void AddDefaultCaps();
bool HandleCapsInfoRequest(const TiXmlElement *iqNode, CJabberIqInfo *pInfo, const char *szNode);
void RequestOldCapsInfo(pResourceStatus &r, const char *fullJid);
void UpdateFeatHash();