/***************************************************************************
- * 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 *
* 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"
Q_OBJECT
public:
+ enum DigestVersion {
+ Md5,
+ Sha2_512,
+ Latest=Sha2_512
+ };
+
ClientAuthHandler(CoreAccount account, QObject *parent = 0);
+ Peer *peer() const;
+
public slots:
void connectToCore();
#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);
void handle(const Protocol::LoginSuccess &msg);
void handle(const Protocol::SessionState &msg);
+ void setPeer(RemotePeer *peer);
+ 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 onSocketError(QAbstractSocket::SocketError);
+ void onSocketDisconnected();
+ void onReadyRead();
+
#ifdef HAVE_SSL
void onSslSocketEncrypted();
void onSslErrors();
RemotePeer *_peer;
bool _coreConfigured;
QVariantList _backendInfo;
+ QVariantList _authenticatorInfo;
CoreAccount _account;
-
+ bool _probing;
+ bool _legacy;
+ quint8 _connectionFeatures;
};
-
-#endif