MCPcopy Create free account
hub / github.com/PurpleI2P/i2pd / AdjustMaxPayloadSize

Method AdjustMaxPayloadSize

libi2pd/SSU2Session.cpp:2805–2823  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2803 }
2804
2805 void SSU2Session::AdjustMaxPayloadSize (size_t maxMtu)
2806 {
2807 auto addr = FindLocalAddress ();
2808 if (addr && addr->ssu)
2809 {
2810 int mtu = addr->ssu->mtu;
2811 if (!mtu) mtu = SSU2_MAX_PACKET_SIZE;
2812 if (mtu > (int)maxMtu) mtu = maxMtu;
2813 if (m_Address && m_Address->ssu && m_Address->ssu->mtu && (!mtu || m_Address->ssu->mtu < mtu))
2814 mtu = m_Address->ssu->mtu;
2815 if (mtu)
2816 {
2817 if (mtu > (int)SSU2_MAX_PACKET_SIZE) mtu = SSU2_MAX_PACKET_SIZE;
2818 if (mtu < (int)SSU2_MIN_PACKET_SIZE) mtu = SSU2_MIN_PACKET_SIZE;
2819 m_MaxPayloadSize = mtu - (addr->IsV6 () ? IPV6_HEADER_SIZE: IPV4_HEADER_SIZE) - UDP_HEADER_SIZE - 32;
2820 LogPrint (eLogDebug, "SSU2: Session MTU=", mtu, ", max payload size=", m_MaxPayloadSize);
2821 }
2822 }
2823 }
2824
2825 RouterStatus SSU2Session::GetRouterStatus () const
2826 {

Callers 1

ProcessNextPacketMethod · 0.80

Calls 2

LogPrintFunction · 0.85
IsV6Method · 0.45

Tested by

no test coverage detected