diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-05-31 10:31:07 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-05-31 10:31:07 +0000 |
| commit | 54ee6c46273a92fd8639961c059051eafdd618b4 (patch) | |
| tree | bc5cbf66c2d409a3cac609bce60d30ad5b40438a /src/AsyncNameResolver.cc | |
| parent | 242267028d336a2f116210eb253f49720f4a2acc (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.cc | 14 |
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; |
