mppc_decompress(bulk->mppcRecv, pSrcData, ppDstData, &size, flags);
*pDstSize = size;
status = 1;
- printf("BulkDecompress: SrcSize: %d DstSize: %d Flags: 0x%04X\n", SrcSize, *pDstSize, flags);
break;
case PACKET_COMPR_TYPE_64K:
mppc_decompress(bulk->mppcRecv, pSrcData, ppDstData, &size, flags);
*pDstSize = size;
status = 1;
- printf("BulkDecompress: SrcSize: %d DstSize: %d Flags: 0x%04X\n", SrcSize, *pDstSize, flags);
break;
case PACKET_COMPR_TYPE_RDP6:
*pFlags = flags;
*pDstSize = size;
*ppDstData = bulk->OutputBuffer;
- status = 0;
-
- printf("BulkCompress: SrcSize: %d DstSize: %d Flags: 0x%04X\n", SrcSize, *pDstSize, flags);
+ status = 1;
return status;
}
bulk->mppcRecv = mppc_context_new(1, FALSE);
bulk->mppc_dec = mppc_dec_new();
+
+ bulk->CompressionLevel = context->settings->CompressionLevel;
}
return bulk;
FASTPATH_UPDATE_PDU_HEADER fpUpdatePduHeader = { 0 };
FASTPATH_UPDATE_HEADER fpUpdateHeader = { 0 };
+ fs = fastpath->fs;
settings = rdp->settings;
maxLength = FASTPATH_MAX_PACKET_SIZE - 20;
totalLength = Stream_GetPosition(s);
Stream_SetPosition(s, 0);
- fs = Stream_New(NULL, FASTPATH_MAX_PACKET_SIZE);
-
for (fragment = 0; (totalLength > 0) || (fragment == 0); fragment++)
{
BYTE* pSrcData;
}
}
+ if (!fpUpdateHeader.compression)
+ {
+ pDstData = Stream_Pointer(s);
+ DstSize = fpUpdateHeader.size;
+ }
+
fpUpdateHeader.size = DstSize;
totalLength -= SrcSize;
fastpath_write_update_header(fs, &fpUpdateHeader);
Stream_Write(fs, pDstData, DstSize);
- Stream_Seek(s, SrcSize);
Stream_SealLength(fs);
if (transport_write(rdp->transport, fs) < 0)
status = FALSE;
break;
}
- }
- Stream_Free(fs, TRUE);
+ Stream_Seek(s, SrcSize);
+ }
return status;
}
fastpath->rdp = rdp;
fastpath->fragmentation = -1;
+ fastpath->fs = Stream_New(NULL, FASTPATH_MAX_PACKET_SIZE);
}
return fastpath;
{
if (fastpath)
{
+ Stream_Free(fastpath->fs, TRUE);
free(fastpath);
}
}