X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fprotocols%2Flegacy%2Flegacypeer.h;h=47cadcc15d32ceb79e5321b125b977601113f8c4;hp=a3aa178b8b8f99e8986e9aee562e09781d2f2112;hb=6eefdfc697067d184a589fc8a231b16316c09106;hpb=76db8cdfbeffaaba359c8e80cf2146da9e9e7f8a diff --git a/src/common/protocols/legacy/legacypeer.h b/src/common/protocols/legacy/legacypeer.h index a3aa178b..47cadcc1 100644 --- a/src/common/protocols/legacy/legacypeer.h +++ b/src/common/protocols/legacy/legacypeer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2013 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 * @@ -21,12 +21,8 @@ #ifndef LEGACYPEER_H #define LEGACYPEER_H -#include - #include "../../remotepeer.h" -class QDataStream; - class LegacyPeer : public RemotePeer { Q_OBJECT @@ -41,32 +37,47 @@ public: HeartBeatReply }; - LegacyPeer(QTcpSocket *socket, QObject *parent = 0); - ~LegacyPeer() {} + LegacyPeer(AuthHandler *authHandler, QTcpSocket *socket, Compressor::CompressionLevel level, QObject *parent = nullptr); + + Protocol::Type protocol() const override { return Protocol::LegacyProtocol; } + QString protocolName() const override { return "the legacy protocol"; } - void setSignalProxy(SignalProxy *proxy); + void setSignalProxy(SignalProxy *proxy) override; - void dispatch(const Protocol::SyncMessage &msg); - void dispatch(const Protocol::RpcCall &msg); - void dispatch(const Protocol::InitRequest &msg); - void dispatch(const Protocol::InitData &msg); + void dispatch(const Protocol::RegisterClient &msg) override; + void dispatch(const Protocol::ClientDenied &msg) override; + void dispatch(const Protocol::ClientRegistered &msg) override; + void dispatch(const Protocol::SetupData &msg) override; + void dispatch(const Protocol::SetupFailed &msg) override; + void dispatch(const Protocol::SetupDone &msg) override; + void dispatch(const Protocol::Login &msg) override; + void dispatch(const Protocol::LoginFailed &msg) override; + void dispatch(const Protocol::LoginSuccess &msg) override; + void dispatch(const Protocol::SessionState &msg) override; - void dispatch(const Protocol::HeartBeat &msg); - void dispatch(const Protocol::HeartBeatReply &msg); + void dispatch(const Protocol::SyncMessage &msg) override; + void dispatch(const Protocol::RpcCall &msg) override; + void dispatch(const Protocol::InitRequest &msg) override; + void dispatch(const Protocol::InitData &msg) override; - // FIXME: this is only used for the auth phase and should be replaced by something more generic - void writeSocketData(const QVariant &item); + void dispatch(const Protocol::HeartBeat &msg) override; + void dispatch(const Protocol::HeartBeatReply &msg) override; -private slots: - void socketDataAvailable(); +signals: + void protocolError(const QString &errorString); private: - bool readSocketData(QVariant &item); + using RemotePeer::writeMessage; + void writeMessage(const QVariant &item); + void processMessage(const QByteArray &msg) override; + + void handleHandshakeMessage(const QVariant &msg); void handlePackedFunc(const QVariant &packedFunc); void dispatchPackedFunc(const QVariantList &packedFunc); - QDataStream _stream; - qint32 _blockSize; + void toLegacyIrcUsersAndChannels(QVariantMap &initData); + void fromLegacyIrcUsersAndChannels(QVariantMap &initData); + bool _useCompression; };