X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientauthhandler.h;h=8cc07d12688434b058816f2d2cd40e62f63fb844;hp=d80051a8ab72be2690a2a0f570b6b1257c0457f8;hb=e8a39b4c3c92e193ab861a3fea84a261bb6fbd24;hpb=b654b2f908590b6f69a7edadf9dacf1277a4493b diff --git a/src/client/clientauthhandler.h b/src/client/clientauthhandler.h index d80051a8..8cc07d12 100644 --- a/src/client/clientauthhandler.h +++ b/src/client/clientauthhandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,9 +18,9 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef CLIENTAUTHHANDLER_H -#define CLIENTAUTHHANDLER_H +#pragma once +#include "compressor.h" #include "authhandler.h" #include "coreaccount.h" @@ -33,7 +33,15 @@ class ClientAuthHandler : public AuthHandler Q_OBJECT public: - ClientAuthHandler(CoreAccount account, QObject *parent = 0); + enum DigestVersion { + Md5, + Sha2_512, + Latest=Sha2_512 + }; + + ClientAuthHandler(CoreAccount account, QObject *parent = nullptr); + + Peer *peer() const; public slots: void connectToCore(); @@ -63,25 +71,32 @@ signals: #endif void encrypted(bool isEncrypted = true); - void startCoreSetup(const QVariantList &backendInfo); + void startCoreSetup(const QVariantList &backendInfo, const QVariantList &authenticatorInfo); void coreSetupSuccessful(); void coreSetupFailed(const QString &error); private: using AuthHandler::handle; - void handle(const Protocol::ClientDenied &msg); - void handle(const Protocol::ClientRegistered &msg); - void handle(const Protocol::SetupFailed &msg); - void handle(const Protocol::SetupDone &msg); - void handle(const Protocol::LoginFailed &msg); - void handle(const Protocol::LoginSuccess &msg); - void handle(const Protocol::SessionState &msg); + void handle(const Protocol::ClientDenied &msg) override; + void handle(const Protocol::ClientRegistered &msg) override; + void handle(const Protocol::SetupFailed &msg) override; + void handle(const Protocol::SetupDone &msg) override; + void handle(const Protocol::LoginFailed &msg) override; + void handle(const Protocol::LoginSuccess &msg) override; + void handle(const Protocol::SessionState &msg) override; + + void setPeer(RemotePeer *peer); + void checkAndEnableSsl(bool coreSupportsSsl); + void startRegistration(); private slots: void onSocketConnected(); void onSocketStateChanged(QAbstractSocket::SocketState state); - //void onSocketError(QAbstractSocket::SocketError); + void onSocketError(QAbstractSocket::SocketError) override; + void onSocketDisconnected() override; + void onReadyRead(); + #ifdef HAVE_SSL void onSslSocketEncrypted(); void onSslErrors(); @@ -95,8 +110,9 @@ private: RemotePeer *_peer; bool _coreConfigured; QVariantList _backendInfo; + QVariantList _authenticatorInfo; CoreAccount _account; - + bool _probing; + bool _legacy; + quint8 _connectionFeatures; }; - -#endif