If error event is received in epoll, then abort download
immediately.
* src/AbstractCommand.cc
* src/Command.cc
* src/Command.h
* src/DownloadEngine.cc
* src/PeerAbstractCommand.cc
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
Added the ability to reuse connection in FTP and it is enabled
by
default. It can be disabled by --ftp-reuse-connection=false
option.
* src/Command.cc
* src/DownloadCommand.cc
* src/FtpDownloadCommand.cc
* src/FtpDownloadCommand.h
* src/FtpFinishDownloadCommand.cc
* src/FtpFinishDownloadCommand.h
* src/FtpInitiateConnectionCommand.cc
* src/FtpNegotiationCommand.cc
* src/FtpNegotiationCommand.h
* src/HelpItemFactory.cc
* src/Makefile.am
* src/Makefile.in
* src/OptionHandlerFactory.cc
* src/option_processing.cc
* src/prefs.h
* src/usage_text.h
Eliminates the time lag between sequential downloads and
commands in
the same RequestGroup.
In old implementation, aria2 occasionally waits 1 seconds before
executing next command or RequestGroup.
This is really a waste of time, and new implementation
eliminates
this unnecessary time lag.
* src/AbstractCommand.cc
* src/AutoSaveCommand.cc
* src/CheckIntegrityCommand.cc
* src/Command.{cc, h}
* src/DownloadEngine.{cc, h}
* src/DownloadEngineFactory.cc
* src/FileAllocationCommand.cc
* src/FileAllocationDispatcherCommand.cc
* src/FillRequestGroupCommand.cc
* src/FtpInitiateConnectionCommand.cc
* src/HaveEraseCommand.cc
* src/HttpInitiateConnectionCommand.cc
* src/HttpResponseCommand.cc
* src/RealtimeCommand.cc
* src/RequestGroup.cc
* src/RequestGroupMan.cc
* src/StreamFileAllocationEntry.cc
* src/TimeBasedCommand.{cc, h}
* src/TimedHaltCommand.cc
To reduce overhead to find commands whose socket is either
readable or writable in the download engine loop:
* src/Command.h, src/Command.cc
(STATUS): New enum.
(status): New variable.
(statusMatch): New function.
(setStatusActive): New function.
(setStatusInactive): New function.
* src/DownloadEngine.h, src/DownloadEngine.cc
(executeCommand): New function.
(run): Simplified.
(waitData): Call Command::setStatusActive() when command's
socket is
readable or writable.