mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-09-18 02:51:32 +01:00
Drop expired tunnel messages. Don't overwrite tunnel message timestamp
Some checks are pending
Build Debian packages / bookworm (push) Waiting to run
Build Debian packages / bullseye (push) Waiting to run
Build Debian packages / trixie (push) Waiting to run
Build on FreeBSD / with UPnP (push) Waiting to run
Build on OSX / With USE_UPNP=no (push) Waiting to run
Build on OSX / With USE_UPNP=yes (push) Waiting to run
Build on Windows / i686 (push) Waiting to run
Build on Windows / ucrt-x86_64 (push) Waiting to run
Build on Windows / clang-x86_64 (push) Waiting to run
Build on Windows / x86_64 (push) Waiting to run
Build on Windows / CMake clang-x86_64 (push) Waiting to run
Build on Windows / CMake i686 (push) Waiting to run
Build on Windows / CMake ucrt-x86_64 (push) Waiting to run
Build on Windows / CMake x86_64 (push) Waiting to run
Build on Windows / XP (push) Waiting to run
Build on Ubuntu / Make with USE_UPNP=no (push) Waiting to run
Build on Ubuntu / Make with USE_UPNP=yes (push) Waiting to run
Build on Ubuntu / CMake with -DWITH_UPNP=OFF (push) Waiting to run
Build on Ubuntu / CMake with -DWITH_UPNP=ON (push) Waiting to run
Build containers / Building container for linux/386 (push) Waiting to run
Build containers / Pushing merged manifest (push) Blocked by required conditions
Build containers / Building container for linux/amd64 (push) Waiting to run
Build containers / Building container for linux/arm64 (push) Waiting to run
Build containers / Building container for linux/arm/v7 (push) Waiting to run
Some checks are pending
Build Debian packages / bookworm (push) Waiting to run
Build Debian packages / bullseye (push) Waiting to run
Build Debian packages / trixie (push) Waiting to run
Build on FreeBSD / with UPnP (push) Waiting to run
Build on OSX / With USE_UPNP=no (push) Waiting to run
Build on OSX / With USE_UPNP=yes (push) Waiting to run
Build on Windows / i686 (push) Waiting to run
Build on Windows / ucrt-x86_64 (push) Waiting to run
Build on Windows / clang-x86_64 (push) Waiting to run
Build on Windows / x86_64 (push) Waiting to run
Build on Windows / CMake clang-x86_64 (push) Waiting to run
Build on Windows / CMake i686 (push) Waiting to run
Build on Windows / CMake ucrt-x86_64 (push) Waiting to run
Build on Windows / CMake x86_64 (push) Waiting to run
Build on Windows / XP (push) Waiting to run
Build on Ubuntu / Make with USE_UPNP=no (push) Waiting to run
Build on Ubuntu / Make with USE_UPNP=yes (push) Waiting to run
Build on Ubuntu / CMake with -DWITH_UPNP=OFF (push) Waiting to run
Build on Ubuntu / CMake with -DWITH_UPNP=ON (push) Waiting to run
Build containers / Building container for linux/386 (push) Waiting to run
Build containers / Pushing merged manifest (push) Blocked by required conditions
Build containers / Building container for linux/amd64 (push) Waiting to run
Build containers / Building container for linux/arm64 (push) Waiting to run
Build containers / Building container for linux/arm/v7 (push) Waiting to run
This commit is contained in:
parent
570305aee0
commit
df794e6627
3 changed files with 6 additions and 2 deletions
|
@ -68,7 +68,9 @@ namespace tunnel
|
||||||
|
|
||||||
m_NumTransmittedBytes += tunnelMsg->GetLength ();
|
m_NumTransmittedBytes += tunnelMsg->GetLength ();
|
||||||
htobe32buf (tunnelMsg->GetPayload (), GetNextTunnelID ());
|
htobe32buf (tunnelMsg->GetPayload (), GetNextTunnelID ());
|
||||||
tunnelMsg->FillI2NPMessageHeader (eI2NPTunnelData);
|
// update header, expiration and size remain the same
|
||||||
|
tunnelMsg->SetMsgID (i2p::tunnel::tunnels.GetRng ()()); // assign new msgID
|
||||||
|
tunnelMsg->UpdateChks (); // new checksum TODO: remove later
|
||||||
m_TunnelDataMsgs.push_back (tunnelMsg);
|
m_TunnelDataMsgs.push_back (tunnelMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -561,13 +561,14 @@ namespace tunnel
|
||||||
if (m_Queue.Wait (1,0)) // 1 sec
|
if (m_Queue.Wait (1,0)) // 1 sec
|
||||||
{
|
{
|
||||||
m_Queue.GetWholeQueue (msgs);
|
m_Queue.GetWholeQueue (msgs);
|
||||||
|
auto mts = i2p::util::GetMillisecondsSinceEpoch ();
|
||||||
int numMsgs = 0;
|
int numMsgs = 0;
|
||||||
uint32_t prevTunnelID = 0, tunnelID = 0;
|
uint32_t prevTunnelID = 0, tunnelID = 0;
|
||||||
std::shared_ptr<TunnelBase> prevTunnel;
|
std::shared_ptr<TunnelBase> prevTunnel;
|
||||||
while (!msgs.empty ())
|
while (!msgs.empty ())
|
||||||
{
|
{
|
||||||
auto msg = msgs.front (); msgs.pop_front ();
|
auto msg = msgs.front (); msgs.pop_front ();
|
||||||
if (!msg) continue;
|
if (!msg || msg->IsExpired (mts)) continue;
|
||||||
std::shared_ptr<TunnelBase> tunnel;
|
std::shared_ptr<TunnelBase> tunnel;
|
||||||
uint8_t typeID = msg->GetTypeID ();
|
uint8_t typeID = msg->GetTypeID ();
|
||||||
switch (typeID)
|
switch (typeID)
|
||||||
|
|
|
@ -248,6 +248,7 @@ namespace tunnel
|
||||||
void SetMaxNumTransitTunnels (uint32_t maxNumTransitTunnels);
|
void SetMaxNumTransitTunnels (uint32_t maxNumTransitTunnels);
|
||||||
uint32_t GetMaxNumTransitTunnels () const { return m_MaxNumTransitTunnels; };
|
uint32_t GetMaxNumTransitTunnels () const { return m_MaxNumTransitTunnels; };
|
||||||
int GetCongestionLevel() const { return m_MaxNumTransitTunnels ? CONGESTION_LEVEL_FULL * m_TransitTunnels.GetNumTransitTunnels () / m_MaxNumTransitTunnels : CONGESTION_LEVEL_FULL; }
|
int GetCongestionLevel() const { return m_MaxNumTransitTunnels ? CONGESTION_LEVEL_FULL * m_TransitTunnels.GetNumTransitTunnels () / m_MaxNumTransitTunnels : CONGESTION_LEVEL_FULL; }
|
||||||
|
std::mt19937& GetRng () { return m_Rng; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue