From a9d542be47e91ae39390247f8c8bbb21d588388f Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Sun, 18 Oct 2009 23:22:22 +0000 Subject: Issue 16: Implement XEP-0030 --- source/QXmppConstants.cpp | 2 ++ source/QXmppConstants.h | 2 ++ source/QXmppInformationRequestResult.cpp | 24 ++++++++++++++++++++++++ source/QXmppInformationRequestResult.h | 13 +++++++++++++ source/QXmppStream.cpp | 12 ++++++++++++ source/source.pro | 6 ++++-- 6 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 source/QXmppInformationRequestResult.cpp create mode 100644 source/QXmppInformationRequestResult.h (limited to 'source') diff --git a/source/QXmppConstants.cpp b/source/QXmppConstants.cpp index ae6c5e6e..bd73494f 100644 --- a/source/QXmppConstants.cpp +++ b/source/QXmppConstants.cpp @@ -35,3 +35,5 @@ const char* ns_stanza = "urn:ietf:params:xml:ns:xmpp-stanzas"; const char* ns_vcard = "vcard-temp"; const char* ns_auth = "jabber:iq:auth"; const char* ns_authFeature = "http://jabber.org/features/iq-auth"; +const char* ns_disco_info = "http://jabber.org/protocol/disco#info"; +const char* ns_ibb = "http://jabber.org/protocol/ibb"; diff --git a/source/QXmppConstants.h b/source/QXmppConstants.h index 4084a89e..ee92560a 100644 --- a/source/QXmppConstants.h +++ b/source/QXmppConstants.h @@ -36,5 +36,7 @@ extern const char* ns_stanza; extern const char* ns_vcard; extern const char* ns_auth; extern const char* ns_authFeature; +extern const char* ns_disco_info; +extern const char* ns_ibb; #endif // QXMPPCONSTANTS_H diff --git a/source/QXmppInformationRequestResult.cpp b/source/QXmppInformationRequestResult.cpp new file mode 100644 index 00000000..86236ff6 --- /dev/null +++ b/source/QXmppInformationRequestResult.cpp @@ -0,0 +1,24 @@ +#include "QXmppInformationRequestResult.h" +#include "QXmppConstants.h" + +QXmppInformationRequestResult::QXmppInformationRequestResult() : QXmppIq(QXmppIq::Result) +{ +} + +QByteArray QXmppInformationRequestResult::toXmlElementFromChild() const +{ + QByteArray resultXml; + + resultXml += ""; + resultXml += ""; + resultXml += ""; + resultXml += ""; + + return resultXml; +} diff --git a/source/QXmppInformationRequestResult.h b/source/QXmppInformationRequestResult.h new file mode 100644 index 00000000..c3fa20a1 --- /dev/null +++ b/source/QXmppInformationRequestResult.h @@ -0,0 +1,13 @@ +#ifndef QXMPPINFORMATIONREQUESTRESULT_H +#define QXMPPINFORMATIONREQUESTRESULT_H + +#include "QXmppIq.h" + +class QXmppInformationRequestResult : public QXmppIq +{ +public: + QXmppInformationRequestResult(); + virtual QByteArray toXmlElementFromChild() const; +}; + +#endif // QXMPPINFORMATIONREQUESTRESULT_H diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp index 0c66cc4b..c6006aa9 100644 --- a/source/QXmppStream.cpp +++ b/source/QXmppStream.cpp @@ -36,6 +36,7 @@ #include "QXmppConstants.h" #include "QXmppVCard.h" #include "QXmppNonSASLAuth.h" +#include "QXmppInformationRequestResult.h" #include #include @@ -359,6 +360,17 @@ void QXmppStream::parser(const QByteArray& data) emit vCardIqReceived(vcardIq); iqPacket = vcardIq; } + // XEP-0030 info query + else if(nodeRecv.firstChildElement("query"). + namespaceURI() == ns_disco_info && + type == "get") + { + QXmppInformationRequestResult qxmppFeatures; + qxmppFeatures.setId(id); + qxmppFeatures.setTo(from); + qxmppFeatures.setFrom(to); + sendPacket(qxmppFeatures); + } else if(id == m_nonSASLAuthId && type == "result") { // successful Non-SASL Authentication diff --git a/source/source.pro b/source/source.pro index cca279bf..cbc98332 100644 --- a/source/source.pro +++ b/source/source.pro @@ -25,7 +25,8 @@ HEADERS += QXmppUtils.h \ QXmppReconnectionManager.h \ QXmppVCardManager.h \ QXmppVCard.h \ - QXmppNonSASLAuth.h + QXmppNonSASLAuth.h \ + QXmppInformationRequestResult.h # Source files SOURCES += QXmppUtils.cpp \ @@ -46,4 +47,5 @@ SOURCES += QXmppUtils.cpp \ QXmppReconnectionManager.cpp \ QXmppVCardManager.cpp \ QXmppVCard.cpp \ - QXmppNonSASLAuth.cpp + QXmppNonSASLAuth.cpp \ + QXmppInformationRequestResult.cpp -- cgit v1.2.3