X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fpeerfactory.cpp;h=2364b7199ba727190c0a12551b04cd450b87754a;hb=755e966f66d2c05970e831088dea4df92c8787a5;hp=32ea16aff53b21ebbe8354bea75b478f8320f815;hpb=9c0ca310ca1b6938cf100c9f7772d39ede630b31;p=quassel.git diff --git a/src/common/peerfactory.cpp b/src/common/peerfactory.cpp index 32ea16af..2364b719 100644 --- a/src/common/peerfactory.cpp +++ b/src/common/peerfactory.cpp @@ -20,31 +20,37 @@ #include "peerfactory.h" +#include "protocols/datastream/datastreampeer.h" #include "protocols/legacy/legacypeer.h" PeerFactory::ProtoList PeerFactory::supportedProtocols() { ProtoList result; + result.append(ProtoDescriptor(Protocol::DataStreamProtocol, DataStreamPeer::supportedFeatures())); result.append(ProtoDescriptor(Protocol::LegacyProtocol, 0)); return result; } -RemotePeer *PeerFactory::createPeer(const ProtoDescriptor &protocol, AuthHandler *authHandler, QTcpSocket *socket, QObject *parent) +RemotePeer *PeerFactory::createPeer(const ProtoDescriptor &protocol, AuthHandler *authHandler, QTcpSocket *socket, Compressor::CompressionLevel level, QObject *parent) { - return createPeer(ProtoList() << protocol, authHandler, socket, parent); + return createPeer(ProtoList() << protocol, authHandler, socket, level, parent); } -RemotePeer *PeerFactory::createPeer(const ProtoList &protocols, AuthHandler *authHandler, QTcpSocket *socket, QObject *parent) +RemotePeer *PeerFactory::createPeer(const ProtoList &protocols, AuthHandler *authHandler, QTcpSocket *socket, Compressor::CompressionLevel level, QObject *parent) { foreach(const ProtoDescriptor &protodesc, protocols) { Protocol::Type proto = protodesc.first; quint16 features = protodesc.second; switch(proto) { case Protocol::LegacyProtocol: - return new LegacyPeer(authHandler, socket, parent); + return new LegacyPeer(authHandler, socket, level, parent); + case Protocol::DataStreamProtocol: + if (DataStreamPeer::acceptsFeatures(features)) + return new DataStreamPeer(authHandler, socket, features, level, parent); + break; default: break; }