Loading...
Searching...
No Matches
QXmppServer.h
// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
//
// SPDX-License-Identifier: LGPL-2.1-or-later
#ifndef QXMPPSERVER_H
#define QXMPPSERVER_H
#include "QXmppLogger.h"
#include <QTcpServer>
#include <QVariantMap>
class QDomElement;
class QSslCertificate;
class QSslKey;
class QSslSocket;
class QXmppDialback;
class QXmppIncomingClient;
class QXmppOutgoingServer;
class QXmppPasswordChecker;
class QXmppPresence;
class QXmppServerExtension;
class QXmppServerPrivate;
class QXmppSslServer;
class QXmppStanza;
class QXmppStream;
class QXMPP_EXPORT QXmppServer : public QXmppLoggable
{
Q_OBJECT
Q_PROPERTY(QXmppLogger *logger READ logger WRITE setLogger NOTIFY loggerChanged)
public:
QXmppServer(QObject *parent = nullptr);
~QXmppServer() override;
void addExtension(QXmppServerExtension *extension);
QList<QXmppServerExtension *> extensions();
QString domain() const;
void setDomain(const QString &domain);
// documentation needs to be here, see https://stackoverflow.com/questions/49192523/
QXmppLogger *logger();
void setLogger(QXmppLogger *logger);
QXmppPasswordChecker *passwordChecker();
void setPasswordChecker(QXmppPasswordChecker *checker);
QVariantMap statistics() const;
void addCaCertificates(const QString &caCertificates);
void setLocalCertificate(const QString &path);
void setLocalCertificate(const QSslCertificate &certificate);
void setPrivateKey(const QString &path);
void setPrivateKey(const QSslKey &key);
void close();
bool listenForClients(const QHostAddress &address = QHostAddress::Any, quint16 port = 5222);
bool listenForServers(const QHostAddress &address = QHostAddress::Any, quint16 port = 5269);
bool sendElement(const QDomElement &element);
bool sendPacket(const QXmppStanza &stanza);
void addIncomingClient(QXmppIncomingClient *stream);
Q_SIGNALS:
void clientConnected(const QString &jid);
void clientDisconnected(const QString &jid);
void loggerChanged(QXmppLogger *logger);
public Q_SLOTS:
void handleElement(const QDomElement &element);
private Q_SLOTS:
void _q_clientConnection(QSslSocket *socket);
void _q_clientConnected();
void _q_clientDisconnected();
void _q_dialbackRequestReceived(const QXmppDialback &dialback);
void _q_outgoingServerDisconnected();
void _q_serverConnection(QSslSocket *socket);
void _q_serverDisconnected();
private:
friend class QXmppServerPrivate;
QXmppServerPrivate *d;
};
class QXmppSslServerPrivate;
class QXMPP_EXPORT QXmppSslServer : public QTcpServer
{
Q_OBJECT
public:
QXmppSslServer(QObject *parent = nullptr);
~QXmppSslServer() override;
void addCaCertificates(const QList<QSslCertificate> &certificates);
void setLocalCertificate(const QSslCertificate &certificate);
void setPrivateKey(const QSslKey &key);
Q_SIGNALS:
void newConnection(QSslSocket *socket);
private:
void incomingConnection(qintptr socketDescriptor) override;
QXmppSslServerPrivate *const d;
};
#endif
QXmppDialback
The QXmppDialback class represents a stanza used for the Server Dialback protocol as specified by XEP...
Definition QXmppDialback.h:16
QXmppIncomingClient
Interface for password checkers.
Definition QXmppIncomingClient.h:21
QXmppLoggable
The QXmppLoggable class represents a source of logging messages.
Definition QXmppLogger.h:105
QXmppLogger
The QXmppLogger class represents a sink for logging messages.
Definition QXmppLogger.h:27
QXmppOutgoingServer
The QXmppOutgoingServer class represents an outgoing XMPP stream to another XMPP server.
Definition QXmppOutgoingServer.h:22
QXmppPasswordChecker
The QXmppPasswordChecker class represents an abstract password checker.
Definition QXmppPasswordChecker.h:83
QXmppPresence
The QXmppPresence class represents an XMPP presence stanza.
Definition QXmppPresence.h:21
QXmppServerExtension
The QXmppServerExtension class is the base class for QXmppServer extensions.
Definition QXmppServerExtension.h:29
QXmppServer
The QXmppServer class represents an XMPP server.
Definition QXmppServer.h:41
QXmppServer::logger
QXmppLogger * logger()
Returns the QXmppLogger associated with the server.
QXmppServer::clientDisconnected
void clientDisconnected(const QString &jid)
This signal is emitted when a client has disconnected.
QXmppServer::clientConnected
void clientConnected(const QString &jid)
This signal is emitted when a client has connected.
QXmppServer::loggerChanged
void loggerChanged(QXmppLogger *logger)
This signal is emitted when the logger changes.
QXmppSslServer
The QXmppSslServer class represents an SSL-enabled TCP server.
Definition QXmppServer.h:114
QXmppSslServer::newConnection
void newConnection(QSslSocket *socket)
This signal is emitted when a new connection is established.
QXmppStanza
The QXmppStanza class is the base class for all XMPP stanzas.
Definition QXmppStanza.h:88
QXmppStream
The QXmppStream class is the base class for all XMPP streams.
Definition QXmppStream.h:36