修正压缩算法解析出错的问题

This commit is contained in:
ling committed 2024-04-18 22:22:50 +08:00
1 parent cc994a091b
commit c80777f064
2 files changed
+17 -2

No files matched your search

+1 -1
View File
@@ -51,7 +51,7 @@ namespace Transmission {
if (!dataPackets.ParseFromArray(buff.get(), this->packSize)) if (!dataPackets.ParseFromArray(buff.get(), this->packSize))
throw PrepareDataException("反序列化出错"); throw PrepareDataException("反序列化出错");
this->packSize = -1; this->packSize = -1;
switch (dataPackets.type()) { switch (dataPackets.algorithm()) {
//无压缩 //无压缩
case CompressAlgorithm::NOT: { case CompressAlgorithm::NOT: {
auto pack = copyMem(dataPackets.data()); auto pack = copyMem(dataPackets.data());
+16 -1
View File
@@ -9,6 +9,15 @@
static bool isExec = false; static bool isExec = false;
static const char *shortStr = "Client Hello"; static const char *shortStr = "Client Hello";
static const char *LongStr = "Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"; static const char *LongStr = "Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello";
static const char *LongLongStr = "Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello";
class Transmit : public Transmission::Transmit { class Transmit : public Transmission::Transmit {
private: private:
@@ -23,7 +32,9 @@ public:
ASSERT_TRUE(strcmp((char *) data.get(), shortStr) == 0); ASSERT_TRUE(strcmp((char *) data.get(), shortStr) == 0);
else if (type == 2) else if (type == 2)
ASSERT_TRUE(strcmp((char *) data.get(), LongStr) == 0); ASSERT_TRUE(strcmp((char *) data.get(), LongStr) == 0);
else else if (type == 3) {
ASSERT_TRUE(strcmp((char *) data.get(), LongLongStr) == 0);
} else
ASSERT_TRUE(false); ASSERT_TRUE(false);
isExec = true; isExec = true;
} }
@@ -62,4 +73,8 @@ TEST(Transmit测试, 1) {
transmitWrite.sendData((unsigned char *) LongStr, strlen(LongStr) + 1, 2); transmitWrite.sendData((unsigned char *) LongStr, strlen(LongStr) + 1, 2);
transmitRead.read(); transmitRead.read();
ASSERT_TRUE(isExec); ASSERT_TRUE(isExec);
isExec = false;
transmitWrite.sendData((unsigned char *) LongLongStr, strlen(LongLongStr) + 1, 3);
transmitRead.read();
ASSERT_TRUE(isExec);
} }