| 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 | { |
no test coverage detected