ProtocolRecognizer: Updated to unique_ptr.
This commit is contained in:
parent
b63bb2f694
commit
583fd0a387
@ -27,7 +27,6 @@
|
||||
|
||||
cProtocolRecognizer::cProtocolRecognizer(cClientHandle * a_Client) :
|
||||
super(a_Client),
|
||||
m_Protocol(nullptr),
|
||||
m_Buffer(8192), // We need a larger buffer to support BungeeCord - it sends one huge packet at the start
|
||||
m_InPingForUnrecognizedVersion(false)
|
||||
{
|
||||
@ -37,16 +36,6 @@ cProtocolRecognizer::cProtocolRecognizer(cClientHandle * a_Client) :
|
||||
|
||||
|
||||
|
||||
cProtocolRecognizer::~cProtocolRecognizer()
|
||||
{
|
||||
delete m_Protocol;
|
||||
m_Protocol = nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
AString cProtocolRecognizer::GetVersionTextFromInt(int a_ProtocolVersion)
|
||||
{
|
||||
switch (a_ProtocolVersion)
|
||||
@ -61,6 +50,7 @@ AString cProtocolRecognizer::GetVersionTextFromInt(int a_ProtocolVersion)
|
||||
case PROTO_VERSION_1_11_1: return "1.11.1";
|
||||
case PROTO_VERSION_1_12: return "1.12";
|
||||
case PROTO_VERSION_1_12_1: return "1.12.1";
|
||||
case PROTO_VERSION_1_13: return "1.13";
|
||||
}
|
||||
ASSERT(!"Unknown protocol version");
|
||||
return Printf("Unknown protocol (%d)", a_ProtocolVersion);
|
||||
@ -1098,62 +1088,62 @@ bool cProtocolRecognizer::TryRecognizeLengthedProtocol(UInt32 a_PacketLengthRema
|
||||
case PROTO_VERSION_1_8_0:
|
||||
{
|
||||
m_Buffer.CommitRead();
|
||||
m_Protocol = new cProtocol_1_8_0(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_8_0(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_9_0:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_9_0(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_9_0(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_9_1:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_9_1(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_9_1(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_9_2:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_9_2(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_9_2(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_9_4:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_9_4(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_9_4(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_10_0:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_10_0(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_10_0(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_11_0:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_11_0(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_11_0(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_11_1:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_11_1(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_11_1(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_12:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_12(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_12(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_12_1:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_12_1(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_12_1(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_12_2:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_12_2(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_12_2(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
case PROTO_VERSION_1_13:
|
||||
{
|
||||
m_Protocol = new cProtocol_1_13(m_Client, ServerAddress, ServerPort, NextState);
|
||||
m_Protocol.reset(new cProtocol_1_13(m_Client, ServerAddress, ServerPort, NextState));
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
|
@ -1,13 +1,3 @@
|
||||
|
||||
// ProtocolRecognizer.h
|
||||
|
||||
// Interfaces to the cProtocolRecognizer class representing the meta-protocol that recognizes possibly multiple
|
||||
// protocol versions and redirects everything to them
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Protocol.h"
|
||||
@ -26,7 +16,9 @@
|
||||
|
||||
|
||||
|
||||
class cProtocolRecognizer :
|
||||
/** Meta-protocol that recognizes multiple protocol versions, creates the specific
|
||||
protocol version instance and redirects everything to it. */
|
||||
class cProtocolRecognizer:
|
||||
public cProtocol
|
||||
{
|
||||
typedef cProtocol super;
|
||||
@ -49,7 +41,7 @@ public:
|
||||
};
|
||||
|
||||
cProtocolRecognizer(cClientHandle * a_Client);
|
||||
virtual ~cProtocolRecognizer() override;
|
||||
virtual ~cProtocolRecognizer() override {}
|
||||
|
||||
/** Translates protocol version number into protocol version text: 49 -> "1.4.4" */
|
||||
static AString GetVersionTextFromInt(int a_ProtocolVersion);
|
||||
@ -149,9 +141,11 @@ public:
|
||||
|
||||
virtual void SendData(const char * a_Data, size_t a_Size) override;
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
/** The recognized protocol */
|
||||
cProtocol * m_Protocol;
|
||||
std::unique_ptr<cProtocol> m_Protocol;
|
||||
|
||||
/** Buffer for the incoming data until we recognize the protocol */
|
||||
cByteBuffer m_Buffer;
|
||||
|
Loading…
Reference in New Issue
Block a user