X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreauthhandler.h;h=21a2c512a33043372bd29f3b8b7336b03839709a;hp=e26e94c0eb1c0b657de3f71f3d1f8af73ace6440;hb=c0d6dc0dec628f2e143e37ecc95cec45e636f8a5;hpb=e8a39b4c3c92e193ab861a3fea84a261bb6fbd24 diff --git a/src/core/coreauthhandler.h b/src/core/coreauthhandler.h index e26e94c0..21a2c512 100644 --- a/src/core/coreauthhandler.h +++ b/src/core/coreauthhandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,11 +18,12 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef COREAUTHHANDLER_H -#define COREAUTHHANDLER_H +#pragma once #include "authhandler.h" +#include "metricsserver.h" #include "peerfactory.h" +#include "proxyline.h" #include "remotepeer.h" #include "types.h" @@ -31,19 +32,22 @@ class CoreAuthHandler : public AuthHandler Q_OBJECT public: - CoreAuthHandler(QTcpSocket *socket, QObject *parent = nullptr); + CoreAuthHandler(QSslSocket* socket, QObject* parent = nullptr); + + QHostAddress hostAddress() const; + bool isLocal() const override; signals: - void handshakeComplete(RemotePeer *peer, UserId uid); + void handshakeComplete(RemotePeer* peer, UserId uid); private: using AuthHandler::handle; - void handle(const Protocol::RegisterClient &msg) override; - void handle(const Protocol::SetupData &msg) override; - void handle(const Protocol::Login &msg) override; + void handle(const Protocol::RegisterClient& msg) override; + void handle(const Protocol::SetupData& msg) override; + void handle(const Protocol::Login& msg) override; - void setPeer(RemotePeer *peer); + void setPeer(RemotePeer* peer); void startSsl(); bool checkClientRegistered(); @@ -51,21 +55,21 @@ private: private slots: void onReadyRead(); -#ifdef HAVE_SSL void onSslErrors(); -#endif // only in legacy mode void onProtocolVersionMismatch(int actual, int expected); private: - RemotePeer *_peer; + RemotePeer* _peer; + MetricsServer* _metricsServer; + bool _proxyReceived; + ProxyLine _proxyLine; + bool _useProxyLine; bool _magicReceived; bool _legacy; bool _clientRegistered; quint8 _connectionFeatures; QVector _supportedProtos; }; - -#endif