diff -U2 -r /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd_client/UDPTunnel.cpp /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd_client/UDPTunnel.cpp --- /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd_client/UDPTunnel.cpp 2026-09-02 01:11:13.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd_client/UDPTunnel.cpp 2026-09-02 00:38:41.000000000 +0000 @@ -484,5 +484,4 @@ void I2PUDPServerTunnel::Start () { - m_IsStarted = true; m_LocalDest->Start (); @@ -555,9 +554,4 @@ void I2PUDPServerTunnel::Stop () { - // a config reload builds a second tunnel object and drops it when the same - // one is already there. Its destructor must not reset the receiver of the - // live tunnel: they share the datagram destination - if (!m_IsStarted) return; - m_IsStarted = false; if (m_StatsTimer) m_StatsTimer->cancel (); if (m_CleanupTimer) m_CleanupTimer->cancel (); @@ -616,5 +610,4 @@ void I2PUDPClientTunnel::Start () { - m_IsStarted = true; UDPConnection::Start (); // Reset flag in case of tunnel reload @@ -651,6 +644,4 @@ void I2PUDPClientTunnel::Stop () { - if (!m_IsStarted) return; // see the comment in I2PUDPServerTunnel::Stop - m_IsStarted = false; if (m_KeepAliveTimer) m_KeepAliveTimer->cancel (); if (m_StatsTimer) m_StatsTimer->cancel (); diff -U2 -r /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd_client/UDPTunnel.h /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd_client/UDPTunnel.h --- /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd_client/UDPTunnel.h 2026-09-02 01:11:13.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd_client/UDPTunnel.h 2026-09-02 00:38:41.000000000 +0000 @@ -195,5 +195,4 @@ uint16_t m_inPort; bool m_Gzip; - bool m_IsStarted = false; // a tunnel that never started shares nothing to tear down uint32_t m_NumRawNoSession = 0; size_t m_MaxWindow = I2P_UDP_MIN_MAX_NUM_UNACKED_DATAGRAMS; @@ -266,5 +265,4 @@ bool m_cancel_resolve; bool m_Gzip; - bool m_IsStarted = false; // see the comment in I2PUDPServerTunnel i2p::datagram::DatagramVersion m_DatagramVersion; std::shared_ptr m_LastSession;