diff options
| author | Linus Jahn <lnj@kaidan.im> | 2019-12-14 22:44:20 +0100 |
|---|---|---|
| committer | LNJ <lnj@kaidan.im> | 2020-01-20 17:14:49 +0100 |
| commit | 55966be2e3e80bd5ab2cc86da2492963dd8127ee (patch) | |
| tree | 899f31eda630825df1a00b331efe3c997c9f7808 /src/base/QXmppStartTlsPacket.h | |
| parent | 8557bc3a605e5d2b1a7dae5999501b19c1c99b58 (diff) | |
| download | qxmpp-55966be2e3e80bd5ab2cc86da2492963dd8127ee.tar.gz | |
Add QXmppStartTlsPacket to replace hard-coded XML in TLS code
Diffstat (limited to 'src/base/QXmppStartTlsPacket.h')
| -rw-r--r-- | src/base/QXmppStartTlsPacket.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/base/QXmppStartTlsPacket.h b/src/base/QXmppStartTlsPacket.h new file mode 100644 index 00000000..05be4ba8 --- /dev/null +++ b/src/base/QXmppStartTlsPacket.h @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2008-2019 The QXmpp developers + * + * Authors: + * Linus Jahn + * + * Source: + * https://github.com/qxmpp-project/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +#ifndef QXMPPSTARTTLSPACKET_H +#define QXMPPSTARTTLSPACKET_H + +#include "QXmppStanza.h" + +/// \brief The QXmppStartTlsPacket represents packets used for initiating +/// STARTTLS negotiation when connecting. + +class QXMPP_EXPORT QXmppStartTlsPacket : public QXmppStanza +{ +public: + /// The type of the STARTTLS packet. + enum Type { + StartTls, ///< Used by the client to initiate STARTTLS. + Proceed, ///< Used by the server to accept STARTTLS. + Failure ///< Used by the server to reject STARTTLS. + }; + + QXmppStartTlsPacket(Type type = StartTls); + ~QXmppStartTlsPacket() override; + + Type type() const; + void setType(Type type); + + /// \cond + void parse(const QDomElement &element) override; + void toXml(QXmlStreamWriter *writer) const override; + /// \endcond + + static bool isStartTlsPacket(const QDomElement &element); + static bool isStartTlsPacket(const QDomElement &element, Type type); + +private: + Type m_type; +}; + +Q_DECLARE_METATYPE(QXmppStartTlsPacket::Type); + +#endif // QXMPPSTARTTLSPACKET_H |
