Browse Source

correct caps for SSU address without host

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

25
libi2pd/RouterInfo.cpp

@ -522,7 +522,7 @@ namespace data
if (address.IsNTCP2 ()) if (address.IsNTCP2 ())
{ {
WriteString ("NTCP2", s); WriteString ("NTCP2", s);
if (address.IsPublishedNTCP2 ()) if (address.IsPublishedNTCP2 () && !address.host.is_unspecified ())
isPublished = true; isPublished = true;
else else
{ {
@ -545,13 +545,24 @@ namespace data
// caps // caps
WriteString ("caps", properties); WriteString ("caps", properties);
properties << '='; properties << '=';
std::string caps; std::string caps;
if (address.IsPeerTesting ()) caps += CAPS_FLAG_SSU_TESTING; if (address.host.is_v4 ())
if (address.IsIntroducer ()) caps += CAPS_FLAG_SSU_INTRODUCER; {
if (IsReachable ()) if (IsReachable ())
isPublished = true;
else
caps += CAPS_FLAG_V4;
}
else if (address.host.is_v6 ())
isPublished = true; isPublished = true;
else else
caps += CAPS_FLAG_V4; {
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); WriteString (caps, properties);
properties << ';'; properties << ';';
} }
@ -640,7 +651,7 @@ namespace data
} }
} }
if (address.IsPublishedNTCP2 ()) if (address.IsNTCP2 () && isPublished)
{ {
// publish i for NTCP2 // publish i for NTCP2
WriteString ("i", properties); properties << '='; WriteString ("i", properties); properties << '=';

Loading…
Cancel
Save