summaryrefslogtreecommitdiff
path: root/src/AsyncNameResolverMan.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-04-01 01:24:18 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-04-01 01:24:18 +0900
commitb5a6c39262a3adeba1c04eee7b6ef29913081c28 (patch)
treec3e5ea65cdd6a24098ce18a5724e3d50b1a77b92 /src/AsyncNameResolverMan.cc
parent597e1a5c1b10aa3668f91bcae02a864dcd0c045b (diff)
Use AsyncNameResolverMan in DHTEntryPointNameResolveCommand
Diffstat (limited to 'src/AsyncNameResolverMan.cc')
-rw-r--r--src/AsyncNameResolverMan.cc26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/AsyncNameResolverMan.cc b/src/AsyncNameResolverMan.cc
index 4e66cce1..2b418394 100644
--- a/src/AsyncNameResolverMan.cc
+++ b/src/AsyncNameResolverMan.cc
@@ -39,6 +39,9 @@
#include "message.h"
#include "fmt.h"
#include "LogFactory.h"
+#include "Option.h"
+#include "SocketCore.h"
+#include "prefs.h"
namespace aria2 {
@@ -186,5 +189,26 @@ const std::string& AsyncNameResolverMan::getLastError() const
return A2STR::NIL;
}
-} // namespace aria2
+void AsyncNameResolverMan::reset(DownloadEngine* e, Command* command)
+{
+ disableNameResolverCheck(e, command);
+ assert(resolverCheck_ == 0);
+ for(size_t i = 0; i < numResolver_; ++i) {
+ asyncNameResolver_[i].reset();
+ }
+ numResolver_ = 0;
+}
+void configureAsyncNameResolverMan(AsyncNameResolverMan* asyncNameResolverMan,
+ Option* option)
+{
+ if(!net::getIPv4AddrConfigured()) {
+ asyncNameResolverMan->setIPv4(false);
+ }
+ if(!net::getIPv6AddrConfigured() ||
+ option->getAsBool(PREF_DISABLE_IPV6)) {
+ asyncNameResolverMan->setIPv6(false);
+ }
+}
+
+} // namespace aria2