Browse Source

correct caps for SSU address without host

pull/1640/head
orignal 4 years ago
parent
commit
fa5e4d57fd
  1. 19
      libi2pd/RouterInfo.cpp

19
libi2pd/RouterInfo.cpp

@ -522,7 +522,7 @@ namespace data @@ -522,7 +522,7 @@ namespace data
if (address.IsNTCP2 ())
{
WriteString ("NTCP2", s);
if (address.IsPublishedNTCP2 ())
if (address.IsPublishedNTCP2 () && !address.host.is_unspecified ())
isPublished = true;
else
{
@ -546,12 +546,23 @@ namespace data @@ -546,12 +546,23 @@ namespace data
WriteString ("caps", properties);
properties << '=';
std::string caps;
if (address.IsPeerTesting ()) caps += CAPS_FLAG_SSU_TESTING;
if (address.IsIntroducer ()) caps += CAPS_FLAG_SSU_INTRODUCER;
if (address.host.is_v4 ())
{
if (IsReachable ())
isPublished = true;
else
caps += CAPS_FLAG_V4;
}
else if (address.host.is_v6 ())
isPublished = true;
else
{
if (address.caps & AddressCaps::eV4) caps += CAPS_FLAG_V4;
if (address.caps & AddressCaps::eV6) caps += CAPS_FLAG_V6;
if (caps.empty ()) caps += CAPS_FLAG_V4;
}
if (address.IsPeerTesting ()) caps += CAPS_FLAG_SSU_TESTING;
if (address.IsIntroducer ()) caps += CAPS_FLAG_SSU_INTRODUCER;
WriteString (caps, properties);
properties << ';';
}
@ -640,7 +651,7 @@ namespace data @@ -640,7 +651,7 @@ namespace data
}
}
if (address.IsPublishedNTCP2 ())
if (address.IsNTCP2 () && isPublished)
{
// publish i for NTCP2
WriteString ("i", properties); properties << '=';

Loading…
Cancel
Save