diff options
| author | Melvin Keskin <melvo@olomono.de> | 2019-06-25 12:09:27 +0200 |
|---|---|---|
| committer | LNJ <lnj@kaidan.im> | 2019-09-06 19:53:01 +0200 |
| commit | fae818fdc89364515a86ef1cc1d1aa449372f281 (patch) | |
| tree | 91ad3f8a0ab3027dc1321cceffaeea339fdce3b7 /src/base | |
| parent | 8ab56c2cf1ff490b78def3f9799d4b8a99965d47 (diff) | |
| download | qxmpp-fae818fdc89364515a86ef1cc1d1aa449372f281.tar.gz | |
Add register stream feature
This adds parsing, serialization and a test for the 'register' stream
feature of XEP-0077: In-Band Registration.
Co-authored-by: Linus Jahn <lnj@kaidan.im>
Diffstat (limited to 'src/base')
| -rw-r--r-- | src/base/QXmppConstants.cpp | 1 | ||||
| -rw-r--r-- | src/base/QXmppConstants_p.h | 1 | ||||
| -rw-r--r-- | src/base/QXmppStreamFeatures.cpp | 12 | ||||
| -rw-r--r-- | src/base/QXmppStreamFeatures.h | 9 |
4 files changed, 23 insertions, 0 deletions
diff --git a/src/base/QXmppConstants.cpp b/src/base/QXmppConstants.cpp index 05d29f55..b6fab47d 100644 --- a/src/base/QXmppConstants.cpp +++ b/src/base/QXmppConstants.cpp @@ -63,6 +63,7 @@ const char* ns_oob = "jabber:x:oob"; const char *ns_xhtml_im = "http://jabber.org/protocol/xhtml-im"; // XEP-0077: In-Band Registration const char* ns_register = "jabber:iq:register"; +const char* ns_register_feature = "http://jabber.org/features/iq-register"; // XEP-0078: Non-SASL Authentication const char* ns_auth = "jabber:iq:auth"; const char* ns_authFeature = "http://jabber.org/features/iq-auth"; diff --git a/src/base/QXmppConstants_p.h b/src/base/QXmppConstants_p.h index 4f6eca53..5304ada4 100644 --- a/src/base/QXmppConstants_p.h +++ b/src/base/QXmppConstants_p.h @@ -75,6 +75,7 @@ extern const char* ns_oob; extern const char *ns_xhtml_im; // XEP-0077: In-Band Registration extern const char* ns_register; +extern const char* ns_register_feature; // XEP-0078: Non-SASL Authentication extern const char* ns_auth; extern const char* ns_authFeature; diff --git a/src/base/QXmppStreamFeatures.cpp b/src/base/QXmppStreamFeatures.cpp index 214cbd9f..8079962a 100644 --- a/src/base/QXmppStreamFeatures.cpp +++ b/src/base/QXmppStreamFeatures.cpp @@ -116,6 +116,16 @@ void QXmppStreamFeatures::setClientStateIndicationMode(QXmppStreamFeatures::Mode m_csiMode = mode; } +QXmppStreamFeatures::Mode QXmppStreamFeatures::registerMode() const +{ + return m_registerMode; +} + +void QXmppStreamFeatures::setRegisterMode(const QXmppStreamFeatures::Mode ®isterMode) +{ + m_registerMode = registerMode; +} + /// \cond bool QXmppStreamFeatures::isStreamFeatures(const QDomElement &element) { @@ -148,6 +158,7 @@ void QXmppStreamFeatures::parse(const QDomElement &element) m_tlsMode = readFeature(element, "starttls", ns_tls); m_streamManagementMode = readFeature(element, "sm", ns_stream_management); m_csiMode = readFeature(element, "csi", ns_csi); + m_registerMode = readFeature(element, "register", ns_register_feature); // parse advertised compression methods QDomElement compression = element.firstChildElement("compression"); @@ -194,6 +205,7 @@ void QXmppStreamFeatures::toXml(QXmlStreamWriter *writer) const writeFeature(writer, "starttls", ns_tls, m_tlsMode); writeFeature(writer, "sm", ns_stream_management, m_streamManagementMode); writeFeature(writer, "csi", ns_csi, m_csiMode); + writeFeature(writer, "register", ns_register_feature, m_registerMode); if (!m_compressionMethods.isEmpty()) { diff --git a/src/base/QXmppStreamFeatures.h b/src/base/QXmppStreamFeatures.h index 952e8c84..dfb20bb9 100644 --- a/src/base/QXmppStreamFeatures.h +++ b/src/base/QXmppStreamFeatures.h @@ -73,6 +73,14 @@ public: /// \pa mode The mode to set. void setClientStateIndicationMode(Mode mode); + /// Returns the mode for XEP-0077: In-Band Registration + Mode registerMode() const; + + /// Sets the mode for XEP-0077: In-Band Registration + /// + /// \pa mode The mode to set. + void setRegisterMode(const Mode ®isterMode); + /// \cond void parse(const QDomElement &element); void toXml(QXmlStreamWriter *writer) const; @@ -87,6 +95,7 @@ private: Mode m_tlsMode; Mode m_streamManagementMode; Mode m_csiMode; + Mode m_registerMode; QStringList m_authMechanisms; QStringList m_compressionMethods; }; |
