PeerTest from Charlie to Alice

This commit is contained in:
orignal 2014-09-22 19:03:46 -04:00
parent 4fc3b8026a
commit 71168389ab

31
SSU.cpp
View File

@ -791,22 +791,27 @@ namespace ssu
}
else
{
// new test
m_PeerTestNonces.insert (nonce);
if (port)
if (m_State == eSessionStateEstablished)
{
LogPrint ("SSU peer test from Bob. We are Charlie");
Send (PAYLOAD_TYPE_PEER_TEST, buf1, len); // back to Bob
SendPeerTest (nonce, be32toh (address), be16toh (port), introKey); // to Alice
// new test
m_PeerTestNonces.insert (nonce);
if (port)
{
LogPrint ("SSU peer test from Bob. We are Charlie");
Send (PAYLOAD_TYPE_PEER_TEST, buf1, len); // back to Bob
SendPeerTest (nonce, be32toh (address), be16toh (port), introKey); // to Alice
}
else
{
LogPrint ("SSU peer test from Alice. We are Bob");
auto session = m_Server.GetRandomEstablishedSession (this); // charlie
if (session)
session->SendPeerTest (nonce, senderEndpoint.address ().to_v4 ().to_ulong (),
senderEndpoint.port (), introKey, false);
}
}
else
{
LogPrint ("SSU peer test from Alice. We are Bob");
auto session = m_Server.GetRandomEstablishedSession (this); // charlie
if (session)
session->SendPeerTest (nonce, senderEndpoint.address ().to_v4 ().to_ulong (),
senderEndpoint.port (), introKey, false);
}
LogPrint ("SSU peer test from Charlie. We are Alice");
}
}