Browse Source

fix ipv6 fallback address

pull/1347/head
R4SAS 6 years ago
parent
commit
73921b1024
  1. 17
      libi2pd/RouterContext.cpp
  2. 7
      libi2pd/util.cpp

17
libi2pd/RouterContext.cpp

@ -51,13 +51,13 @@ namespace i2p @@ -51,13 +51,13 @@ namespace i2p
port = rand () % (30777 - 9111) + 9111; // I2P network ports range
if (port == 9150) port = 9151; // Tor browser
}
bool ipv4; i2p::config::GetOption("ipv4", ipv4);
bool ipv6; i2p::config::GetOption("ipv6", ipv6);
bool ssu; i2p::config::GetOption("ssu", ssu);
bool ntcp; i2p::config::GetOption("ntcp", ntcp);
bool ntcp2; i2p::config::GetOption("ntcp2.enabled", ntcp2);
bool nat; i2p::config::GetOption("nat", nat);
std::string ifname; i2p::config::GetOption("ifname", ifname);
bool ipv4; i2p::config::GetOption("ipv4", ipv4);
bool ipv6; i2p::config::GetOption("ipv6", ipv6);
bool ssu; i2p::config::GetOption("ssu", ssu);
bool ntcp; i2p::config::GetOption("ntcp", ntcp);
bool ntcp2; i2p::config::GetOption("ntcp2.enabled", ntcp2);
bool nat; i2p::config::GetOption("nat", nat);
std::string ifname; i2p::config::GetOption("ifname", ifname);
std::string ifname4; i2p::config::GetOption("ifname4", ifname4);
std::string ifname6; i2p::config::GetOption("ifname6", ifname6);
if (ipv4)
@ -79,7 +79,7 @@ namespace i2p @@ -79,7 +79,7 @@ namespace i2p
}
if (ipv6)
{
std::string host = "::";
std::string host = "::1";
if (!i2p::config::IsDefault("host") && !ipv4) // override if v6 only
i2p::config::GetOption("host", host);
else if (!ifname.empty())
@ -113,7 +113,6 @@ namespace i2p @@ -113,7 +113,6 @@ namespace i2p
PublishNTCP2Address (port, true);
}
}
}
void RouterContext::UpdateRouterInfo ()

7
libi2pd/util.cpp

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

Loading…
Cancel
Save