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