Browse Source

check yggdrasil ipv6 range

pull/1626/head
orignal 4 years ago
parent
commit
ed4c00e4f4
  1. 5
      libi2pd/util.cpp
  2. 2
      libi2pd/util.h

5
libi2pd/util.cpp

@ -446,7 +446,8 @@ namespace net
#endif #endif
} }
bool IsInReservedRange (const boost::asio::ip::address& host) { bool IsInReservedRange (const boost::asio::ip::address& host, bool checkYggdrasil)
{
// https://en.wikipedia.org/wiki/Reserved_IP_addresses // https://en.wikipedia.org/wiki/Reserved_IP_addresses
if(host.is_v4()) if(host.is_v4())
{ {
@ -486,6 +487,8 @@ namespace net
if (ipv6_address >= it.first && ipv6_address <= it.second) if (ipv6_address >= it.first && ipv6_address <= it.second)
return true; return true;
} }
if (checkYggdrasil && (ipv6_address[0] == 0x02 || ipv6_address[0] == 0x03)) // yggdrasil?
return true;
} }
return false; return false;
} }

2
libi2pd/util.h

@ -189,7 +189,7 @@ namespace util
int GetMTU (const boost::asio::ip::address& localAddress); int GetMTU (const boost::asio::ip::address& localAddress);
const boost::asio::ip::address GetInterfaceAddress (const std::string & ifname, bool ipv6=false); const boost::asio::ip::address GetInterfaceAddress (const std::string & ifname, bool ipv6=false);
boost::asio::ip::address_v6 GetYggdrasilAddress (); boost::asio::ip::address_v6 GetYggdrasilAddress ();
bool IsInReservedRange (const boost::asio::ip::address& host); bool IsInReservedRange (const boost::asio::ip::address& host, bool checkYggdrasil = true);
} }
} }
} }

Loading…
Cancel
Save