summaryrefslogtreecommitdiff
path: root/src/AsyncNameResolver.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-05-31 10:31:07 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-05-31 10:31:07 +0000
commit54ee6c46273a92fd8639961c059051eafdd618b4 (patch)
treebc5cbf66c2d409a3cac609bce60d30ad5b40438a /src/AsyncNameResolver.cc
parent242267028d336a2f116210eb253f49720f4a2acc (diff)
2008-05-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added epoll support. Use epoll if it is available. If not, use select. When async dns is enabled in compile time, epoll support is enabled only when aria2 is built with c-ares. This condition statement is defined in a2io.h. Currently aria2 supports both c-ares and ares, but ares is maintained for quite a while and debian already has c-ares package, ares support will be dropped in the future version. * configure.ac * src/AbstractCommand.cc * src/AsyncNameResolver.cc * src/AsyncNameResolver.h * src/Command.cc * src/Command.h * src/DownloadEngine.cc * src/DownloadEngine.h * src/PeerAbstractCommand.cc * src/SocketCore.cc * src/SocketCore.h * src/a2io.h
Diffstat (limited to 'src/AsyncNameResolver.cc')
-rw-r--r--src/AsyncNameResolver.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/AsyncNameResolver.cc b/src/AsyncNameResolver.cc
index bf24c593..d20619b1 100644
--- a/src/AsyncNameResolver.cc
+++ b/src/AsyncNameResolver.cc
@@ -115,6 +115,20 @@ void AsyncNameResolver::process(fd_set* rfdsPtr, fd_set* wfdsPtr)
ares_process(channel, rfdsPtr, wfdsPtr);
}
+#ifdef HAVE_LIBCARES
+
+int AsyncNameResolver::getsock(int* sockets) const
+{
+ return ares_getsock(channel, sockets, ARES_GETSOCK_MAXNUM);
+}
+
+void AsyncNameResolver::process(ares_socket_t readfd, ares_socket_t writefd)
+{
+ ares_process_fd(channel, readfd, writefd);
+}
+
+#endif // HAVE_LIBCARES
+
bool AsyncNameResolver::operator==(const AsyncNameResolver& resolver) const
{
return this == &resolver;