From 38e43bc9c8e7d304ee7b278b5fa24fbbb3e05f4e Mon Sep 17 00:00:00 2001 From: orignal Date: Thu, 23 Jun 2022 08:18:35 -0400 Subject: [PATCH] check Charlie's address for PeerTest msg 4 --- libi2pd/SSU2Session.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/libi2pd/SSU2Session.cpp b/libi2pd/SSU2Session.cpp index cf776f0a..778b9bba 100644 --- a/libi2pd/SSU2Session.cpp +++ b/libi2pd/SSU2Session.cpp @@ -358,7 +358,7 @@ namespace transport } default: { - LogPrint (eLogWarning, "SSU2: Unexpected message type ", (int)header.h.type); + LogPrint (eLogWarning, "SSU2: Unexpected message type ", (int)header.h.type, " from ", m_RemoteEndpoint); return false; } } @@ -1604,17 +1604,24 @@ namespace transport it->second.first->SetRemoteIdentity (r->GetIdentity ()); auto addr = r->GetSSU2Address (m_Address->IsV4 ()); if (addr) + { it->second.first->m_Address = addr; - if (it->second.first->m_State == eSSU2SessionStatePeerTestReceived) - { - // msg 5 already received. send msg 6 - it->second.first->m_State = eSSU2SessionStatePeerTest; - it->second.first->SendPeerTest (6, buf + offset, len - offset, addr->i); + if (it->second.first->m_State == eSSU2SessionStatePeerTestReceived) + { + // msg 5 already received. send msg 6 + it->second.first->m_State = eSSU2SessionStatePeerTest; + it->second.first->SendPeerTest (6, buf + offset, len - offset, addr->i); + } } + else + { + LogPrint (eLogWarning, "SSU2: Peer test 4 address not found"); + it->second.first->Terminate (); + } } else { - LogPrint (eLogInfo, "SSU2: Peer test 4 signature verification failed"); + LogPrint (eLogWarning, "SSU2: Peer test 4 signature verification failed"); it->second.first->Terminate (); } }