mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-18 00:09:58 +00:00
create smaller I2NP packets
This commit is contained in:
parent
f41563a700
commit
644d65054d
@ -1150,7 +1150,7 @@ namespace garlic
|
|||||||
|
|
||||||
std::shared_ptr<I2NPMessage> WrapECIESX25519Message (std::shared_ptr<const I2NPMessage> msg, const uint8_t * key, uint64_t tag)
|
std::shared_ptr<I2NPMessage> WrapECIESX25519Message (std::shared_ptr<const I2NPMessage> msg, const uint8_t * key, uint64_t tag)
|
||||||
{
|
{
|
||||||
auto m = NewI2NPMessage ();
|
auto m = NewI2NPMessage ((msg ? msg->GetPayloadLength () : 0) + 128);
|
||||||
m->Align (12); // in order to get buf aligned to 16 (12 + 4)
|
m->Align (12); // in order to get buf aligned to 16 (12 + 4)
|
||||||
uint8_t * buf = m->GetPayload () + 4; // 4 bytes for length
|
uint8_t * buf = m->GetPayload () + 4; // 4 bytes for length
|
||||||
size_t offset = 0;
|
size_t offset = 0;
|
||||||
@ -1176,7 +1176,7 @@ namespace garlic
|
|||||||
// Noise_N, we are Alice, routerPublicKey is Bob's
|
// Noise_N, we are Alice, routerPublicKey is Bob's
|
||||||
i2p::crypto::NoiseSymmetricState noiseState;
|
i2p::crypto::NoiseSymmetricState noiseState;
|
||||||
i2p::crypto::InitNoiseNState (noiseState, routerPublicKey);
|
i2p::crypto::InitNoiseNState (noiseState, routerPublicKey);
|
||||||
auto m = NewI2NPMessage ();
|
auto m = NewI2NPMessage ((msg ? msg->GetPayloadLength () : 0) + 128);
|
||||||
m->Align (12); // in order to get buf aligned to 16 (12 + 4)
|
m->Align (12); // in order to get buf aligned to 16 (12 + 4)
|
||||||
uint8_t * buf = m->GetPayload () + 4; // 4 bytes for length
|
uint8_t * buf = m->GetPayload () + 4; // 4 bytes for length
|
||||||
size_t offset = 0;
|
size_t offset = 0;
|
||||||
|
@ -134,7 +134,8 @@ namespace i2p
|
|||||||
std::shared_ptr<I2NPMessage> CreateRouterInfoDatabaseLookupMsg (const uint8_t * key, const uint8_t * from,
|
std::shared_ptr<I2NPMessage> CreateRouterInfoDatabaseLookupMsg (const uint8_t * key, const uint8_t * from,
|
||||||
uint32_t replyTunnelID, bool exploratory, std::set<i2p::data::IdentHash> * excludedPeers)
|
uint32_t replyTunnelID, bool exploratory, std::set<i2p::data::IdentHash> * excludedPeers)
|
||||||
{
|
{
|
||||||
auto m = excludedPeers ? NewI2NPMessage () : NewI2NPShortMessage ();
|
int cnt = excludedPeers ? excludedPeers->size () : 0;
|
||||||
|
auto m = cnt > 7 ? NewI2NPMessage () : NewI2NPShortMessage ();
|
||||||
uint8_t * buf = m->GetPayload ();
|
uint8_t * buf = m->GetPayload ();
|
||||||
memcpy (buf, key, 32); // key
|
memcpy (buf, key, 32); // key
|
||||||
buf += 32;
|
buf += 32;
|
||||||
@ -155,7 +156,6 @@ namespace i2p
|
|||||||
|
|
||||||
if (excludedPeers)
|
if (excludedPeers)
|
||||||
{
|
{
|
||||||
int cnt = excludedPeers->size ();
|
|
||||||
htobe16buf (buf, cnt);
|
htobe16buf (buf, cnt);
|
||||||
buf += 2;
|
buf += 2;
|
||||||
for (auto& it: *excludedPeers)
|
for (auto& it: *excludedPeers)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user