fix: Decode buffer before write it
This commit is contained in:
@@ -508,8 +508,8 @@ BOOL IOCPServer::OnClientReceiving(PCONTEXT_OBJECT ContextObject, DWORD dwTrans
|
|||||||
}
|
}
|
||||||
else if (ContextObject->CompressMethod == COMPRESS_NONE) {
|
else if (ContextObject->CompressMethod == COMPRESS_NONE) {
|
||||||
ContextObject->InDeCompressedBuffer.ClearBuffer();
|
ContextObject->InDeCompressedBuffer.ClearBuffer();
|
||||||
ContextObject->InDeCompressedBuffer.WriteBuffer(CompressedBuffer, ulOriginalLength);
|
|
||||||
ContextObject->Decode(CompressedBuffer, ulOriginalLength);
|
ContextObject->Decode(CompressedBuffer, ulOriginalLength);
|
||||||
|
ContextObject->InDeCompressedBuffer.WriteBuffer(CompressedBuffer, ulOriginalLength);
|
||||||
m_NotifyProc(ContextObject);
|
m_NotifyProc(ContextObject);
|
||||||
SAFE_DELETE_ARRAY(CompressedBuffer);
|
SAFE_DELETE_ARRAY(CompressedBuffer);
|
||||||
continue;
|
continue;
|
||||||
@@ -522,16 +522,16 @@ BOOL IOCPServer::OnClientReceiving(PCONTEXT_OBJECT ContextObject, DWORD dwTrans
|
|||||||
if (usingZstd ? C_SUCCESS(iRet) : (S_OK==iRet))
|
if (usingZstd ? C_SUCCESS(iRet) : (S_OK==iRet))
|
||||||
{
|
{
|
||||||
ContextObject->InDeCompressedBuffer.ClearBuffer();
|
ContextObject->InDeCompressedBuffer.ClearBuffer();
|
||||||
ContextObject->InDeCompressedBuffer.WriteBuffer(DeCompressedBuffer, ulOriginalLength);
|
|
||||||
ContextObject->Decode(DeCompressedBuffer, ulOriginalLength);
|
ContextObject->Decode(DeCompressedBuffer, ulOriginalLength);
|
||||||
|
ContextObject->InDeCompressedBuffer.WriteBuffer(DeCompressedBuffer, ulOriginalLength);
|
||||||
m_NotifyProc(ContextObject); //֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD>
|
m_NotifyProc(ContextObject); //֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD>
|
||||||
}else if (usingZstd){
|
}else if (usingZstd){
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>zlib<69><62>ѹ<EFBFBD><D1B9>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>zlib<69><62>ѹ<EFBFBD><D1B9>
|
||||||
if (Z_OK == uncompress(DeCompressedBuffer, &ulOriginalLength, CompressedBuffer, ulCompressedLength)) {
|
if (Z_OK == uncompress(DeCompressedBuffer, &ulOriginalLength, CompressedBuffer, ulCompressedLength)) {
|
||||||
ContextObject->CompressMethod = COMPRESS_ZLIB;
|
ContextObject->CompressMethod = COMPRESS_ZLIB;
|
||||||
ContextObject->InDeCompressedBuffer.ClearBuffer();
|
ContextObject->InDeCompressedBuffer.ClearBuffer();
|
||||||
ContextObject->InDeCompressedBuffer.WriteBuffer(DeCompressedBuffer, ulOriginalLength);
|
|
||||||
ContextObject->Decode(DeCompressedBuffer, ulOriginalLength);
|
ContextObject->Decode(DeCompressedBuffer, ulOriginalLength);
|
||||||
|
ContextObject->InDeCompressedBuffer.WriteBuffer(DeCompressedBuffer, ulOriginalLength);
|
||||||
m_NotifyProc(ContextObject);
|
m_NotifyProc(ContextObject);
|
||||||
} else {
|
} else {
|
||||||
zlibFailed = true;
|
zlibFailed = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user