X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fidentserver.h;h=31204b2bce6db2d5787b5aeb0d80348c3b38380e;hp=4d4aecc5185214392b17dc6ffbdd90b40ca8f568;hb=2e83624ce2642589a5b1f298e4993c51d22caafe;hpb=41b9d689945e784b160a25d12076600ff4b7ae90 diff --git a/src/core/identserver.h b/src/core/identserver.h index 4d4aecc5..31204b2b 100644 --- a/src/core/identserver.h +++ b/src/core/identserver.h @@ -20,12 +20,18 @@ #pragma once +#include + +#include +#include +#include #include #include #include "coreidentity.h" -struct Request { +struct Request +{ QTcpSocket *socket; uint16_t localPort; QString query; @@ -33,32 +39,35 @@ struct Request { qint64 requestId; friend bool operator==(const Request &a, const Request &b); + + void respondSuccess(const QString &user); + void respondError(const QString &error); }; -class IdentServer : public QObject { -Q_OBJECT + +class IdentServer : public QObject +{ + Q_OBJECT + public: - IdentServer(bool strict, QObject *parent); - ~IdentServer() override; + IdentServer(bool strict, QObject *parent = nullptr); bool startListening(); void stopListening(const QString &msg); qint64 addWaitingSocket(); + public slots: - bool addSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort, qint64 socketId); - bool removeSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort, qint64 socketId); + void addSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort, qint64 socketId); + void removeSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort, qint64 socketId); private slots: void incomingConnection(); void respond(); private: - bool responseAvailable(Request request); - void responseUnavailable(Request request); - - QString sysIdentForIdentity(const CoreIdentity *identity) const; + bool responseAvailable(Request request) const; - bool hasSocketsBelowId(qint64 socketId); + qint64 lowestSocketId() const; void processWaiting(qint64 socketId); @@ -71,6 +80,6 @@ private: QHash _connections; std::list _requestQueue; std::list _waiting; - qint64 _socketId; - qint64 _requestId; + qint64 _socketId{0}; + qint64 _requestId{0}; };