mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-10 08:00:38 +03:00
30 lines
641 B
C++
30 lines
641 B
C++
#include <cryptopp/gzip.h>
|
|
#include "Log.h"
|
|
#include "Datagram.h"
|
|
|
|
namespace i2p
|
|
{
|
|
namespace datagram
|
|
{
|
|
void DatagramDestination::HandleDataMessagePayload (const uint8_t * buf, size_t len)
|
|
{
|
|
// unzip it
|
|
CryptoPP::Gunzip decompressor;
|
|
decompressor.Put (buf, len);
|
|
decompressor.MessageEnd();
|
|
uint8_t uncompressed[MAX_DATAGRAM_SIZE];
|
|
auto uncompressedLen = decompressor.MaxRetrievable ();
|
|
if (uncompressedLen <= MAX_DATAGRAM_SIZE)
|
|
{
|
|
decompressor.Get (uncompressed, uncompressedLen);
|
|
//HandleNextPacket (uncompressed);
|
|
}
|
|
else
|
|
LogPrint ("Received datagram size ", uncompressedLen, " exceeds max size");
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|