Browse Source

check Charlie's address for PeerTest msg 4

pull/1769/head
orignal 2 years ago
parent
commit
38e43bc9c8
  1. 19
      libi2pd/SSU2Session.cpp

19
libi2pd/SSU2Session.cpp

@ -358,7 +358,7 @@ namespace transport
} }
default: 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; return false;
} }
} }
@ -1604,17 +1604,24 @@ namespace transport
it->second.first->SetRemoteIdentity (r->GetIdentity ()); it->second.first->SetRemoteIdentity (r->GetIdentity ());
auto addr = r->GetSSU2Address (m_Address->IsV4 ()); auto addr = r->GetSSU2Address (m_Address->IsV4 ());
if (addr) if (addr)
{
it->second.first->m_Address = addr; it->second.first->m_Address = addr;
if (it->second.first->m_State == eSSU2SessionStatePeerTestReceived) 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
{ {
// msg 5 already received. send msg 6 LogPrint (eLogWarning, "SSU2: Peer test 4 address not found");
it->second.first->m_State = eSSU2SessionStatePeerTest; it->second.first->Terminate ();
it->second.first->SendPeerTest (6, buf + offset, len - offset, addr->i);
} }
} }
else else
{ {
LogPrint (eLogInfo, "SSU2: Peer test 4 signature verification failed"); LogPrint (eLogWarning, "SSU2: Peer test 4 signature verification failed");
it->second.first->Terminate (); it->second.first->Terminate ();
} }
} }

Loading…
Cancel
Save