ssl: Remove fallback code for missing SSL support
[quassel.git] / src / client / clientauthhandler.h
index 00c2986..b02c0c8 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2015 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  *
  *   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 "compressor.h"
 #include "coreaccount.h"
 
 class QSslSocket;
@@ -34,89 +33,83 @@ class ClientAuthHandler : public AuthHandler
     Q_OBJECT
 
 public:
-    ClientAuthHandler(CoreAccount account, QObject *parent = 0);
-
-    enum DigestVersion {
+    enum DigestVersion
+    {
         Md5,
         Sha2_512,
-        Latest=Sha2_512
+        Latest = Sha2_512
     };
 
+    ClientAuthHandler(CoreAccount account, QObject* parent = nullptr);
+
+    Peer* peer() const;
+
 public slots:
     void connectToCore();
 
-    void login(const QString &previousError = QString());
-    void login(const QString &user, const QString &password, bool remember);
-    void setupCore(const Protocol::SetupData &setupData);
+    void login(const QStringpreviousError = QString());
+    void login(const QString& user, const QString& password, bool remember);
+    void setupCore(const Protocol::SetupDatasetupData);
 
 signals:
-    void statusMessage(const QString &message);
-    void errorMessage(const QString &message);
-    void errorPopup(const QString &message);
+    void statusMessage(const QStringmessage);
+    void errorMessage(const QStringmessage);
+    void errorPopup(const QStringmessage);
     void transferProgress(int current, int max);
 
-    void requestDisconnect(const QString &errorString = QString(), bool wantReconnect = false);
+    void requestDisconnect(const QStringerrorString = QString(), bool wantReconnect = false);
 
     void connectionReady();
-    void loginSuccessful(const CoreAccount &account);
-    void handshakeComplete(RemotePeer *peer, const Protocol::SessionState &sessionState);
+    void loginSuccessful(const CoreAccountaccount);
+    void handshakeComplete(RemotePeer* peer, const Protocol::SessionState& sessionState);
 
     // These signals MUST be handled synchronously!
-    void userAuthenticationRequired(CoreAccount *account, bool *valid, const QString &errorMessage = QString());
-    void handleNoSslInClient(bool *accepted);
-    void handleNoSslInCore(bool *accepted);
-#ifdef HAVE_SSL
-    void handleSslErrors(const QSslSocket *socket, bool *accepted, bool *permanently);
-#endif
+    void userAuthenticationRequired(CoreAccount* account, bool* valid, const QString& errorMessage = QString());
+    void handleNoSslInClient(bool* accepted);
+    void handleNoSslInCore(bool* accepted);
+    void handleSslErrors(const QSslSocket* socket, bool* accepted, bool* permanently);
 
     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);
+    void coreSetupFailed(const QStringerror);
 
 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 setPeer(RemotePeerpeer);
     void checkAndEnableSsl(bool coreSupportsSsl);
     void startRegistration();
 
-#if QT_VERSION < 0x050000
-    QByteArray sha2_512(const QByteArray &input);
-#endif
-
 private slots:
     void onSocketConnected();
     void onSocketStateChanged(QAbstractSocket::SocketState state);
-    void onSocketError(QAbstractSocket::SocketError);
-    void onSocketDisconnected();
+    void onSocketError(QAbstractSocket::SocketError) override;
+    void onSocketDisconnected() override;
     void onReadyRead();
 
-#ifdef HAVE_SSL
     void onSslSocketEncrypted();
     void onSslErrors();
-#endif
 
     void onProtocolVersionMismatch(int actual, int expected);
 
     void onConnectionReady();
 
 private:
-    RemotePeer *_peer;
+    RemotePeer_peer;
     bool _coreConfigured;
     QVariantList _backendInfo;
+    QVariantList _authenticatorInfo;
     CoreAccount _account;
     bool _probing;
     bool _legacy;
     quint8 _connectionFeatures;
 };
-
-#endif