diff --git a/daemon/Daemon.cpp b/daemon/Daemon.cpp index bff17e09..7b09feeb 100644 --- a/daemon/Daemon.cpp +++ b/daemon/Daemon.cpp @@ -157,6 +157,8 @@ namespace util precomputation = false; // we don't elgamal table if no ssu, unless it's specified explicitly i2p::crypto::InitCrypto (precomputation, aesni, avx, forceCpuExt); + i2p::transport::InitAddressFromIface (); // get address4/6 from interfaces + int netID; i2p::config::GetOption("netid", netID); i2p::context.SetNetID (netID); i2p::context.Init (); diff --git a/libi2pd/Transports.cpp b/libi2pd/Transports.cpp index fdd32d35..6dac23de 100644 --- a/libi2pd/Transports.cpp +++ b/libi2pd/Transports.cpp @@ -965,7 +965,7 @@ namespace transport } } - void InitTransports () + void InitAddressFromIface () { bool ipv6; i2p::config::GetOption("ipv6", ipv6); bool ipv4; i2p::config::GetOption("ipv4", ipv4); @@ -988,8 +988,15 @@ namespace transport else if (!ifname.empty ()) i2p::config::SetOption ("address6", i2p::util::net::GetInterfaceAddress(ifname, true).to_string ()); // v6 } + } + + void InitTransports () + { + bool ipv6; i2p::config::GetOption("ipv6", ipv6); + bool ipv4; i2p::config::GetOption("ipv4", ipv4); + bool ygg; i2p::config::GetOption("meshnets.yggdrasil", ygg); + uint16_t port; i2p::config::GetOption("port", port); - bool ygg; i2p::config::GetOption("meshnets.yggdrasil", ygg); boost::asio::ip::address_v6 yggaddr; if (ygg) { @@ -1015,7 +1022,6 @@ namespace transport } } - uint16_t port; i2p::config::GetOption("port", port); if (!i2p::config::IsDefault("port")) { LogPrint(eLogInfo, "Transports: Accepting incoming connections at port ", port); diff --git a/libi2pd/Transports.h b/libi2pd/Transports.h index c9e1c5f4..4ee08af2 100644 --- a/libi2pd/Transports.h +++ b/libi2pd/Transports.h @@ -204,6 +204,7 @@ namespace transport extern Transports transports; + void InitAddressFromIface (); void InitTransports (); } }