fix ipv6 fallback address

This commit is contained in:
R4SAS 2019-05-08 00:45:52 +03:00
parent ece140f18c
commit 73921b1024
2 changed files with 38 additions and 36 deletions

View File

@ -79,7 +79,7 @@ namespace i2p
} }
if (ipv6) if (ipv6)
{ {
std::string host = "::"; std::string host = "::1";
if (!i2p::config::IsDefault("host") && !ipv4) // override if v6 only if (!i2p::config::IsDefault("host") && !ipv4) // override if v6 only
i2p::config::GetOption("host", host); i2p::config::GetOption("host", host);
else if (!ifname.empty()) else if (!ifname.empty())
@ -113,7 +113,6 @@ namespace i2p
PublishNTCP2Address (port, true); PublishNTCP2Address (port, true);
} }
} }
} }
void RouterContext::UpdateRouterInfo () void RouterContext::UpdateRouterInfo ()

View File

@ -295,6 +295,9 @@ namespace net
{ {
#ifdef WIN32 #ifdef WIN32
LogPrint(eLogError, "NetIface: cannot get address by interface name, not implemented on WIN32"); LogPrint(eLogError, "NetIface: cannot get address by interface name, not implemented on WIN32");
if(ipv6)
return boost::asio::ip::address::from_string("::1");
else
return boost::asio::ip::address::from_string("127.0.0.1"); return boost::asio::ip::address::from_string("127.0.0.1");
#else #else
int af = (ipv6 ? AF_INET6 : AF_INET); int af = (ipv6 ? AF_INET6 : AF_INET);
@ -327,7 +330,7 @@ namespace net
std::string fallback; std::string fallback;
if(ipv6) if(ipv6)
{ {
fallback = "::"; fallback = "::1";
LogPrint(eLogWarning, "NetIface: cannot find ipv6 address for interface ", ifname); LogPrint(eLogWarning, "NetIface: cannot find ipv6 address for interface ", ifname);
} else { } else {
fallback = "127.0.0.1"; fallback = "127.0.0.1";