diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2009-10-18 23:22:22 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2009-10-18 23:22:22 +0000 |
| commit | a9d542be47e91ae39390247f8c8bbb21d588388f (patch) | |
| tree | df3e1e317a8b616448f7ef383b58b18da086f78b /source | |
| parent | 8054a813ea973b69fa655ce0cdfb516db58e4295 (diff) | |
| download | qxmpp-a9d542be47e91ae39390247f8c8bbb21d588388f.tar.gz | |
Issue 16: Implement XEP-0030
Diffstat (limited to 'source')
| -rw-r--r-- | source/QXmppConstants.cpp | 2 | ||||
| -rw-r--r-- | source/QXmppConstants.h | 2 | ||||
| -rw-r--r-- | source/QXmppInformationRequestResult.cpp | 24 | ||||
| -rw-r--r-- | source/QXmppInformationRequestResult.h | 13 | ||||
| -rw-r--r-- | source/QXmppStream.cpp | 12 | ||||
| -rw-r--r-- | source/source.pro | 6 |
6 files changed, 57 insertions, 2 deletions
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 += "<query xmlns='";
+ resultXml += ns_disco_info;
+ resultXml += "'>";
+ resultXml += "<feature var='";
+ resultXml += ns_disco_info;
+ resultXml += "'/>";
+ resultXml += "<feature var='";
+ resultXml += ns_ibb;
+ resultXml += "'/>";
+ resultXml += "</query>";
+
+ 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 <QDomDocument>
#include <QStringList>
@@ -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
|
