mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-10 00:00:29 +03:00
transit tunnel gateway batching
This commit is contained in:
parent
82103e6a39
commit
1dc166f0f8
@ -560,13 +560,17 @@ namespace i2p
|
||||
{
|
||||
if (msg)
|
||||
{
|
||||
if (msg->GetTypeID () == eI2NPTunnelData)
|
||||
{
|
||||
LogPrint ("TunnelData");
|
||||
m_TunnelMsgs.push_back (msg);
|
||||
}
|
||||
else
|
||||
HandleI2NPMessage (msg);
|
||||
switch (msg->GetTypeID ())
|
||||
{
|
||||
case eI2NPTunnelData:
|
||||
LogPrint ("TunnelData");
|
||||
m_TunnelMsgs.push_back (msg);
|
||||
break;
|
||||
LogPrint ("TunnelGateway");
|
||||
m_TunnelGatewayMsgs.push_back (msg);
|
||||
default:
|
||||
HandleI2NPMessage (msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -577,5 +581,10 @@ namespace i2p
|
||||
i2p::tunnel::tunnels.PostTunnelData (m_TunnelMsgs);
|
||||
m_TunnelMsgs.clear ();
|
||||
}
|
||||
if (!m_TunnelGatewayMsgs.empty ())
|
||||
{
|
||||
i2p::tunnel::tunnels.PostTunnelData (m_TunnelMsgs);
|
||||
m_TunnelGatewayMsgs.clear ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ namespace tunnel
|
||||
|
||||
private:
|
||||
|
||||
std::vector<I2NPMessage *> m_TunnelMsgs;
|
||||
std::vector<I2NPMessage *> m_TunnelMsgs, m_TunnelGatewayMsgs;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -70,9 +70,15 @@ namespace tunnel
|
||||
block.deliveryType = eDeliveryTypeLocal;
|
||||
block.data = msg;
|
||||
std::unique_lock<std::mutex> l(m_SendMutex);
|
||||
m_Gateway.SendTunnelDataMsg (block);
|
||||
m_Gateway.PutTunnelDataMsg (block);
|
||||
}
|
||||
|
||||
void TransitTunnelGateway::FlushTunnelDataMsgs ()
|
||||
{
|
||||
LogPrint (eLogDebug, "TransitTunnel: gateway flush");
|
||||
m_Gateway.SendBuffer ();
|
||||
}
|
||||
|
||||
void TransitTunnelEndpoint::HandleTunnelDataMsg (i2p::I2NPMessage * tunnelMsg)
|
||||
{
|
||||
EncryptTunnelMsg (tunnelMsg);
|
||||
|
@ -73,6 +73,7 @@ namespace tunnel
|
||||
layerKey, ivKey), m_Gateway(this) {};
|
||||
|
||||
void SendTunnelDataMsg (i2p::I2NPMessage * msg);
|
||||
void FlushTunnelDataMsgs ();
|
||||
size_t GetNumTransmittedBytes () const { return m_Gateway.GetNumSentBytes (); };
|
||||
|
||||
private:
|
||||
|
Loading…
Reference in New Issue
Block a user