Browse Source

don't reply with relay tag if we are not on introducer on that address

pull/2072/head
orignal 7 months ago
parent
commit
f990a2f69f
  1. 10
      libi2pd/SSU2Session.cpp

10
libi2pd/SSU2Session.cpp

@ -1657,8 +1657,12 @@ namespace transport
LogPrint (eLogDebug, "SSU2: RelayTagRequest"); LogPrint (eLogDebug, "SSU2: RelayTagRequest");
if (!m_RelayTag) if (!m_RelayTag)
{ {
RAND_bytes ((uint8_t *)&m_RelayTag, 4); auto addr = FindLocalAddress ();
m_Server.AddRelay (m_RelayTag, shared_from_this ()); if (addr && addr->IsIntroducer ())
{
RAND_bytes ((uint8_t *)&m_RelayTag, 4);
m_Server.AddRelay (m_RelayTag, shared_from_this ());
}
} }
break; break;
case eSSU2BlkRelayTag: case eSSU2BlkRelayTag:
@ -2478,6 +2482,8 @@ namespace transport
{ {
if (m_Address) if (m_Address)
return i2p::context.GetRouterInfo ().GetSSU2Address (m_Address->IsV4 ()); return i2p::context.GetRouterInfo ().GetSSU2Address (m_Address->IsV4 ());
else if (!m_RemoteEndpoint.address ().is_unspecified ())
return i2p::context.GetRouterInfo ().GetSSU2Address (m_RemoteEndpoint.address ().is_v4 ());
return nullptr; return nullptr;
} }

Loading…
Cancel
Save