|
|
@ -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 (); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|