diff --git a/src/AsyncNameResolverMan.cc b/src/AsyncNameResolverMan.cc index 2b418394..90f08844 100644 --- a/src/AsyncNameResolverMan.cc +++ b/src/AsyncNameResolverMan.cc @@ -202,6 +202,15 @@ void AsyncNameResolverMan::reset(DownloadEngine* e, Command* command) void configureAsyncNameResolverMan(AsyncNameResolverMan* asyncNameResolverMan, Option* option) { + // Currently, aria2 checks configured addresses at the startup. But + // there are chances that interfaces are not setup at that + // moment. For example, if aria2 is used as daemon, it may start + // before network interfaces up. To workaround this, we check + // addresses again if both addresses are not configured at the + // startup. + if(!net::getIPv4AddrConfigured() && !net::getIPv6AddrConfigured()) { + net::checkAddrconfig(); + } if(!net::getIPv4AddrConfigured()) { asyncNameResolverMan->setIPv4(false); }