ProtocolRecognizer: Updated to unique_ptr.
This commit is contained in:
parent
b63bb2f694
commit
583fd0a387
@ -27,7 +27,6 @@
|
|||||||
|
|
||||||
cProtocolRecognizer::cProtocolRecognizer(cClientHandle * a_Client) :
|
cProtocolRecognizer::cProtocolRecognizer(cClientHandle * a_Client) :
|
||||||
super(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_Buffer(8192), // We need a larger buffer to support BungeeCord - it sends one huge packet at the start
|
||||||
m_InPingForUnrecognizedVersion(false)
|
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)
|
AString cProtocolRecognizer::GetVersionTextFromInt(int a_ProtocolVersion)
|
||||||
{
|
{
|
||||||
switch (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_11_1: return "1.11.1";
|
||||||
case PROTO_VERSION_1_12: return "1.12";
|
case PROTO_VERSION_1_12: return "1.12";
|
||||||
case PROTO_VERSION_1_12_1: return "1.12.1";
|
case PROTO_VERSION_1_12_1: return "1.12.1";
|
||||||
|
case PROTO_VERSION_1_13: return "1.13";
|
||||||
}
|
}
|
||||||
ASSERT(!"Unknown protocol version");
|
ASSERT(!"Unknown protocol version");
|
||||||
return Printf("Unknown protocol (%d)", a_ProtocolVersion);
|
return Printf("Unknown protocol (%d)", a_ProtocolVersion);
|
||||||
@ -1098,62 +1088,62 @@ bool cProtocolRecognizer::TryRecognizeLengthedProtocol(UInt32 a_PacketLengthRema
|
|||||||
case PROTO_VERSION_1_8_0:
|
case PROTO_VERSION_1_8_0:
|
||||||
{
|
{
|
||||||
m_Buffer.CommitRead();
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_9_0:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_9_1:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_9_2:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_9_4:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_10_0:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_11_0:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_11_1:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_12:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_12_1:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_12_2:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
case PROTO_VERSION_1_13:
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
default:
|
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
|
#pragma once
|
||||||
|
|
||||||
#include "Protocol.h"
|
#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
|
public cProtocol
|
||||||
{
|
{
|
||||||
typedef cProtocol super;
|
typedef cProtocol super;
|
||||||
@ -49,7 +41,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
cProtocolRecognizer(cClientHandle * a_Client);
|
cProtocolRecognizer(cClientHandle * a_Client);
|
||||||
virtual ~cProtocolRecognizer() override;
|
virtual ~cProtocolRecognizer() override {}
|
||||||
|
|
||||||
/** Translates protocol version number into protocol version text: 49 -> "1.4.4" */
|
/** Translates protocol version number into protocol version text: 49 -> "1.4.4" */
|
||||||
static AString GetVersionTextFromInt(int a_ProtocolVersion);
|
static AString GetVersionTextFromInt(int a_ProtocolVersion);
|
||||||
@ -149,9 +141,11 @@ public:
|
|||||||
|
|
||||||
virtual void SendData(const char * a_Data, size_t a_Size) override;
|
virtual void SendData(const char * a_Data, size_t a_Size) override;
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
/** The recognized protocol */
|
/** The recognized protocol */
|
||||||
cProtocol * m_Protocol;
|
std::unique_ptr<cProtocol> m_Protocol;
|
||||||
|
|
||||||
/** Buffer for the incoming data until we recognize the protocol */
|
/** Buffer for the incoming data until we recognize the protocol */
|
||||||
cByteBuffer m_Buffer;
|
cByteBuffer m_Buffer;
|
||||||
|
Loading…
Reference in New Issue
Block a user