X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcommon%2Fprotocol.h;h=f3c18e4c828a60ab9f89dcf4c27d1546ef637ebe;hb=16f22647e6890d3eb8c3e94f7a0700e12fa29e44;hp=9b1a45a488561d2aa76c0b5830dac015715b9aa7;hpb=ce26c3770b254362c7bd1e094ba8f8bf22133653;p=quassel.git diff --git a/src/common/protocol.h b/src/common/protocol.h index 9b1a45a4..f3c18e4c 100644 --- a/src/common/protocol.h +++ b/src/common/protocol.h @@ -1,5 +1,5 @@ /*************************************************************************** - * 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 * @@ -30,6 +30,7 @@ namespace Protocol { const quint32 magic = 0x42b33f00; enum Type { + InternalProtocol = 0x00, LegacyProtocol = 0x01, DataStreamProtocol = 0x02 }; @@ -56,11 +57,13 @@ struct HandshakeMessage { 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; @@ -78,33 +81,45 @@ struct ClientDenied : public HandshakeMessage 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; };