Browse Source

show local SSU2 address

pull/1742/head
orignal 3 years ago
parent
commit
6eba061c2a
  1. 14
      daemon/HTTPServer.cpp
  2. 7
      libi2pd/RouterContext.cpp
  3. 4
      libi2pd/RouterInfo.cpp
  4. 2
      libi2pd/RouterInfo.h

14
daemon/HTTPServer.cpp

@ -311,7 +311,7 @@ namespace http {
if (address->IsNTCP2 () && !address->IsPublishedNTCP2 ()) if (address->IsNTCP2 () && !address->IsPublishedNTCP2 ())
{ {
s << "<td>NTCP2"; s << "<td>NTCP2";
if (address->host.is_v6 ()) s << "v6"; if (address->IsV6 ()) s << "v6";
s << "</td><td>" << tr("supported") << "</td>\r\n</tr>\r\n"; s << "</td><td>" << tr("supported") << "</td>\r\n</tr>\r\n";
continue; continue;
} }
@ -321,18 +321,24 @@ namespace http {
{ {
s << "<td>NTCP"; s << "<td>NTCP";
if (address->IsPublishedNTCP2 ()) s << "2"; if (address->IsPublishedNTCP2 ()) s << "2";
if (address->host.is_v6 ()) s << "v6"; if (address->IsV6 ()) s << "v6";
s << "</td>\r\n"; s << "</td>\r\n";
break; break;
} }
case i2p::data::RouterInfo::eTransportSSU: case i2p::data::RouterInfo::eTransportSSU:
{ {
s << "<td>SSU"; s << "<td>SSU";
if (address->host.is_v6 ()) if (address->IsV6 ()) s << "v6";
s << "v6";
s << "</td>\r\n"; s << "</td>\r\n";
break; break;
} }
case i2p::data::RouterInfo::eTransportSSU2:
{
s << "<td>SSU2";
if (address->IsV6 ()) s << "v6";
s << "</td><td>" << tr("supported") << "</td>\r\n</tr>\r\n";
break;
}
default: default:
s << "<td>" << tr("Unknown") << "</td>\r\n"; s << "<td>" << tr("Unknown") << "</td>\r\n";
} }

7
libi2pd/RouterContext.cpp

@ -346,7 +346,12 @@ namespace i2p
} }
if (enable && !found) if (enable && !found)
{ {
m_RouterInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey); uint8_t addressCaps = 0;
bool ipv4; i2p::config::GetOption("ipv4", ipv4);
bool ipv6; i2p::config::GetOption("ipv6", ipv6);
if (ipv4) addressCaps |= i2p::data::RouterInfo::AddressCaps::eV4;
if (ipv6) addressCaps |= i2p::data::RouterInfo::AddressCaps::eV6;
m_RouterInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, addressCaps);
updated = true; updated = true;
} }
if (updated) if (updated)

4
libi2pd/RouterInfo.cpp

@ -631,11 +631,11 @@ namespace data
m_Addresses->push_back(std::move(addr)); m_Addresses->push_back(std::move(addr));
} }
void RouterInfo::AddSSU2Address (const uint8_t * staticKey) void RouterInfo::AddSSU2Address (const uint8_t * staticKey, uint8_t caps)
{ {
auto addr = std::make_shared<Address>(); auto addr = std::make_shared<Address>();
addr->transportStyle = eTransportSSU2; addr->transportStyle = eTransportSSU2;
addr->caps = 0; addr->caps = caps;
addr->date = 0; addr->date = 0;
memcpy (addr->s, staticKey, 32); memcpy (addr->s, staticKey, 32);
m_Addresses->push_back(std::move(addr)); m_Addresses->push_back(std::move(addr));

2
libi2pd/RouterInfo.h

@ -190,7 +190,7 @@ namespace data
void AddSSUAddress (const char * host, int port, const uint8_t * key, int mtu = 0); void AddSSUAddress (const char * host, int port, const uint8_t * key, int mtu = 0);
void AddNTCP2Address (const uint8_t * staticKey, const uint8_t * iv, void AddNTCP2Address (const uint8_t * staticKey, const uint8_t * iv,
const boost::asio::ip::address& host = boost::asio::ip::address(), int port = 0, uint8_t caps = 0); const boost::asio::ip::address& host = boost::asio::ip::address(), int port = 0, uint8_t caps = 0);
void AddSSU2Address (const uint8_t * staticKey); // non published void AddSSU2Address (const uint8_t * staticKey, uint8_t caps = 0); // non published
bool AddIntroducer (const Introducer& introducer); bool AddIntroducer (const Introducer& introducer);
bool RemoveIntroducer (const boost::asio::ip::udp::endpoint& e); bool RemoveIntroducer (const boost::asio::ip::udp::endpoint& e);
void SetUnreachableAddressesTransportCaps (uint8_t transports); // bitmask of AddressCaps void SetUnreachableAddressesTransportCaps (uint8_t transports); // bitmask of AddressCaps

Loading…
Cancel
Save