diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/AbstractCommand.cc | 7 | ||||
| -rw-r--r-- | src/AsyncNameResolver.cc | 13 | ||||
| -rw-r--r-- | src/AsyncNameResolver.h | 7 | ||||
| -rw-r--r-- | src/DHTEntryPointNameResolveCommand.cc | 6 | ||||
| -rw-r--r-- | src/DownloadEngine.cc | 8 | ||||
| -rw-r--r-- | src/DownloadEngine.h | 6 | ||||
| -rw-r--r-- | src/MultiUrlRequestInfo.cc | 3 | ||||
| -rw-r--r-- | src/OptionHandlerFactory.cc | 2 |
8 files changed, 41 insertions, 11 deletions
diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc index 04c36077..f9c47358 100644 --- a/src/AbstractCommand.cc +++ b/src/AbstractCommand.cc @@ -651,7 +651,12 @@ void AbstractCommand::initAsyncNameResolver(const std::string& hostname) family = AF_INET; } asyncNameResolver_.reset - (new AsyncNameResolver(family, e_->getAsyncDNSServers())); + (new AsyncNameResolver(family +#ifdef HAVE_ARES_ADDR_NODE + , + e_->getAsyncDNSServers() +#endif // HAVE_ARES_ADDR_NODE + )); A2_LOG_INFO(fmt(MSG_RESOLVING_HOSTNAME, getCuid(), hostname.c_str())); diff --git a/src/AsyncNameResolver.cc b/src/AsyncNameResolver.cc index 832d8a45..b5ddddbc 100644 --- a/src/AsyncNameResolver.cc +++ b/src/AsyncNameResolver.cc @@ -78,18 +78,25 @@ void callback(void* arg, int status, int timeouts, struct hostent* host) } } -AsyncNameResolver::AsyncNameResolver(int family, ares_addr_node* servers): - status_(STATUS_READY), - family_(family) +AsyncNameResolver::AsyncNameResolver +(int family +#ifdef HAVE_ARES_ADDR_NODE + , ares_addr_node* servers +#endif // HAVE_ARES_ADDR_NODE + ) + : status_(STATUS_READY), + family_(family) { // TODO evaluate return value ares_init(&channel_); +#if defined HAVE_ARES_SET_SERVERS && HAVE_ARES_ADDR_NODE if(servers) { // ares_set_servers has been added since c-ares 1.7.1 if(ares_set_servers(channel_, servers) != ARES_SUCCESS) { A2_LOG_DEBUG("ares_set_servers failed"); } } +#endif // HAVE_ARES_SET_SERVERS && HAVE_ARES_ADDR_NODE } AsyncNameResolver::~AsyncNameResolver() diff --git a/src/AsyncNameResolver.h b/src/AsyncNameResolver.h index 76610813..12aca93c 100644 --- a/src/AsyncNameResolver.h +++ b/src/AsyncNameResolver.h @@ -70,7 +70,12 @@ private: std::string error_; std::string hostname_; public: - AsyncNameResolver(int family, ares_addr_node* servers); + AsyncNameResolver + (int family +#ifdef HAVE_ARES_ADDR_NODE + , ares_addr_node* servers +#endif // HAVE_ARES_ADDR_NODE + ); ~AsyncNameResolver(); diff --git a/src/DHTEntryPointNameResolveCommand.cc b/src/DHTEntryPointNameResolveCommand.cc index 2332673f..ed4b2d02 100644 --- a/src/DHTEntryPointNameResolveCommand.cc +++ b/src/DHTEntryPointNameResolveCommand.cc @@ -84,7 +84,11 @@ bool DHTEntryPointNameResolveCommand::execute() } else { family = AF_INET; } - resolver_.reset(new AsyncNameResolver(family, e_->getAsyncDNSServers())); + resolver_.reset(new AsyncNameResolver(family +#ifdef HAVE_ARES_ADDR_NODE + , e_->getAsyncDNSServers() +#endif // HAVE_ARES_ADDR_NODE + )); } #endif // ENABLE_ASYNC_DNS try { diff --git a/src/DownloadEngine.cc b/src/DownloadEngine.cc index ad024f82..95b510f0 100644 --- a/src/DownloadEngine.cc +++ b/src/DownloadEngine.cc @@ -95,9 +95,9 @@ DownloadEngine::DownloadEngine(const SharedHandle<EventPoll>& eventPoll) #ifdef ENABLE_BITTORRENT btRegistry_(new BtRegistry()), #endif // ENABLE_BITTORRENT -#ifdef ENABLE_ASYNC_DNS +#ifdef HAVE_ARES_ADDR_NODE asyncDNSServers_(0), -#endif // ENABLE_ASYNC_DNS +#endif // HAVE_ARES_ADDR_NODE dnsCache_(new DNSCache()) { unsigned char sessionId[20]; @@ -107,7 +107,9 @@ DownloadEngine::DownloadEngine(const SharedHandle<EventPoll>& eventPoll) DownloadEngine::~DownloadEngine() { cleanQueue(); +#ifdef HAVE_ARES_ADDR_NODE setAsyncDNSServers(0); +#endif // HAVE_ARES_ADDR_NODE } void DownloadEngine::cleanQueue() { @@ -564,6 +566,7 @@ void DownloadEngine::setCheckIntegrityMan checkIntegrityMan_ = ciman; } +#ifdef HAVE_ARES_ADDR_NODE void DownloadEngine::setAsyncDNSServers(ares_addr_node* asyncDNSServers) { ares_addr_node* node = asyncDNSServers_; @@ -574,5 +577,6 @@ void DownloadEngine::setAsyncDNSServers(ares_addr_node* asyncDNSServers) } asyncDNSServers_ = asyncDNSServers; } +#endif // HAVE_ARES_ADDR_NODE } // namespace aria2 diff --git a/src/DownloadEngine.h b/src/DownloadEngine.h index e86b7c69..c1071f97 100644 --- a/src/DownloadEngine.h +++ b/src/DownloadEngine.h @@ -135,9 +135,9 @@ private: CUIDCounter cuidCounter_; -#ifdef ENABLE_ASYNC_DNS +#ifdef HAVE_ARES_ADDR_NODE ares_addr_node* asyncDNSServers_; -#endif // ENABLE_ASYNC_DNS +#endif // HAVE_ARES_ADDR_NODE SharedHandle<DNSCache> dnsCache_; @@ -331,12 +331,14 @@ public: return sessionId_; } +#ifdef HAVE_ARES_ADDR_NODE void setAsyncDNSServers(ares_addr_node* asyncDNSServers); ares_addr_node* getAsyncDNSServers() const { return asyncDNSServers_; } +#endif // HAVE_ARES_ADDR_NODE }; typedef SharedHandle<DownloadEngine> DownloadEngineHandle; diff --git a/src/MultiUrlRequestInfo.cc b/src/MultiUrlRequestInfo.cc index 60e0c3fa..168d573c 100644 --- a/src/MultiUrlRequestInfo.cc +++ b/src/MultiUrlRequestInfo.cc @@ -215,10 +215,11 @@ error_code::Value MultiUrlRequestInfo::execute() } SocketCore::setTLSContext(tlsContext); #endif +#ifdef HAVE_ARES_ADDR_NODE ares_addr_node* asyncDNSServers = parseAsyncDNSServers(option_->get(PREF_ASYNC_DNS_SERVER)); e->setAsyncDNSServers(asyncDNSServers); - +#endif // HAVE_ARES_ADDR_NODE if(!Timer::monotonicClock()) { A2_LOG_WARN("Don't change system time while aria2c is running." " Doing this may make aria2c hang for long time."); diff --git a/src/OptionHandlerFactory.cc b/src/OptionHandlerFactory.cc index 138d00e8..65f92992 100644 --- a/src/OptionHandlerFactory.cc +++ b/src/OptionHandlerFactory.cc @@ -89,6 +89,7 @@ OptionHandlers OptionHandlerFactory::createOptionHandlers() op->addTag(TAG_ADVANCED); handlers.push_back(op); } +#if defined HAVE_ARES_SET_SERVERS && HAVE_ARES_ADDR_NODE { SharedHandle<OptionHandler> op(new DefaultOptionHandler (PREF_ASYNC_DNS_SERVER, @@ -97,6 +98,7 @@ OptionHandlers OptionHandlerFactory::createOptionHandlers() op->addTag(TAG_ADVANCED); handlers.push_back(op); } +#endif // HAVE_ARES_SET_SERVERS && HAVE_ARES_ADDR_NODE #endif // ENABLE_ASYNC_DNS { SharedHandle<OptionHandler> op(new BooleanOptionHandler |
