X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fprotocol.h;h=bf6c401e339f1bde84a66629708cbcb70322c1bf;hp=c7cbcb3a8f4e67d4b91314c50dbb3b36a1f0d5d4;hb=30fa961d1aca319b52071ad9d6e4527ea2638fb7;hpb=3856cfd6126cdea97c91a22be7ded92ccc0a3577 diff --git a/src/common/protocol.h b/src/common/protocol.h index c7cbcb3a..bf6c401e 100644 --- a/src/common/protocol.h +++ b/src/common/protocol.h @@ -42,7 +42,7 @@ enum Feature { }; -enum Handler { +enum class Handler { SignalProxy, AuthHandler }; @@ -51,7 +51,7 @@ enum Handler { /*** Handshake, handled by AuthHandler ***/ struct HandshakeMessage { - inline Handler handler() const { return AuthHandler; } + inline Handler handler() const { return Handler::AuthHandler; } }; @@ -81,16 +81,20 @@ struct ClientDenied : public HandshakeMessage struct ClientRegistered : public HandshakeMessage { - inline ClientRegistered(quint32 coreFeatures, bool coreConfigured, const QVariantList &backendInfo, bool sslSupported) + inline ClientRegistered(quint32 coreFeatures, bool coreConfigured, const QVariantList &backendInfo, bool sslSupported, const QVariantList &authenticatorInfo) : coreFeatures(coreFeatures) , coreConfigured(coreConfigured) , backendInfo(backendInfo) + , authenticatorInfo(authenticatorInfo) , sslSupported(sslSupported) {} 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; @@ -99,13 +103,23 @@ struct ClientRegistered : public HandshakeMessage 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; }; @@ -165,7 +179,7 @@ struct SessionState : public HandshakeMessage struct SignalProxyMessage { - inline Handler handler() const { return SignalProxy; } + inline Handler handler() const { return Handler::SignalProxy; } };