/***************************************************************************
- * Copyright (C) 2005-2014 by the Quassel Project *
+ * Copyright (C) 2005-2016 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
const quint32 magic = 0x42b33f00;
enum Type {
- LegacyProtocol = 1
+ InternalProtocol = 0x00,
+ LegacyProtocol = 0x01,
+ DataStreamProtocol = 0x02
};
struct RegisterClient : public HandshakeMessage
{
- inline RegisterClient(const QString &clientVersion, bool sslSupported = false)
+ inline RegisterClient(const QString &clientVersion, const QString &buildDate, bool sslSupported = false)
: clientVersion(clientVersion)
+ , buildDate(buildDate)
, sslSupported(sslSupported) {}
QString clientVersion;
+ QString buildDate;
// this is only used by the LegacyProtocol in compat mode
bool sslSupported;
struct ClientRegistered : public HandshakeMessage
{
- inline ClientRegistered(quint32 coreFeatures, bool coreConfigured, const QVariantList &backendInfo, bool sslSupported, const QDateTime &coreStartTime)
+ inline ClientRegistered(quint32 coreFeatures, bool coreConfigured, const QVariantList &backendInfo, bool sslSupported, const QVariantList &authenticatorInfo)
: coreFeatures(coreFeatures)
, coreConfigured(coreConfigured)
, backendInfo(backendInfo)
+ , authenticatorInfo(authenticatorInfo)
, sslSupported(sslSupported)
- , coreStartTime(coreStartTime)
{}
quint32 coreFeatures;
bool coreConfigured;
+
+ // The authenticatorInfo should be optional!
QVariantList backendInfo; // TODO: abstract this better
+ QVariantList authenticatorInfo;
// this is only used by the LegacyProtocol in compat mode
bool sslSupported;
- QDateTime coreStartTime;
};
struct SetupData : public HandshakeMessage
{
- inline SetupData(const QString &adminUser, const QString &adminPassword, const QString &backend, const QVariantMap &setupData)
- : adminUser(adminUser), adminPassword(adminPassword), backend(backend), setupData(setupData) {}
+ inline SetupData(const QString &adminUser, const QString &adminPassword, const QString &backend,
+ const QVariantMap &setupData, const QString &authenticator = QString(),
+ const QVariantMap &authSetupData = QVariantMap())
+ : adminUser(adminUser)
+ , adminPassword(adminPassword)
+ , backend(backend)
+ , setupData(setupData)
+ , authenticator(authenticator)
+ , authSetupData(authSetupData)
+ {}
QString adminUser;
QString adminPassword;
QString backend;
QVariantMap setupData;
+ QString authenticator;
+ QVariantMap authSetupData;
};