From 5324197e4360b4fc462a466da0ed22aba5dc47cc Mon Sep 17 00:00:00 2001 From: orignal Date: Thu, 19 Sep 2024 15:27:04 -0400 Subject: [PATCH] don't change router status if peer test came from recent endpoint --- libi2pd/SSU2Session.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libi2pd/SSU2Session.cpp b/libi2pd/SSU2Session.cpp index 789b42e4..9c4345dc 100644 --- a/libi2pd/SSU2Session.cpp +++ b/libi2pd/SSU2Session.cpp @@ -2365,12 +2365,13 @@ namespace transport if (addr) { it->second.first->m_Address = addr; - auto state = it->second.first->m_State; + auto& state = it->second.first->m_State; if (state == eSSU2SessionStatePeerTestReceived || state == eSSU2SessionStateVoidPeerTestReceived) { // msg 5 already received. send msg 6 - SetRouterStatus (state == eSSU2SessionStatePeerTestReceived ? eRouterStatusOK : eRouterStatusUnknown); - it->second.first->m_State = eSSU2SessionStatePeerTest; + if (state == eSSU2SessionStatePeerTestReceived) + SetRouterStatus (eRouterStatusOK); + state = eSSU2SessionStatePeerTest; it->second.first->SendPeerTest (6, buf + offset, len - offset, addr->i); } else @@ -2430,7 +2431,8 @@ namespace transport bool isConnectedRecently = m_Server.IsConnectedRecently (m_RemoteEndpoint); if (m_Address) { - SetRouterStatus (isConnectedRecently ? eRouterStatusUnknown : eRouterStatusOK); + if (!isConnectedRecently) + SetRouterStatus (eRouterStatusOK); SendPeerTest (6, buf + offset, len - offset, m_Address->i); } else