Added --no-proxy option. It receives comman separated hostname
or domains to which proxy should not be used.
aria2 honors the environment variable no_proxy to override
no-proxy value in configuration file. The user can override the
environment variable no_proxy with --no-proxy command-line
option.
* src/AbstractCommand.cc
* src/OptionHandlerFactory.cc
* src/option_processing.cc
* src/prefs.cc
* src/prefs.h
* src/usage_text.h
Added the ability to verify peer in SSL/TLS using given CA
certificates.
The CA certificates are specified in --ca-certificate option.
By default, the verification is disabled. Use --check-certificate
option to enable it.
* src/HttpRequestCommand.cc
* src/LibgnutlsTLSContext.cc
* src/LibgnutlsTLSContext.h
* src/LibsslTLSContext.cc
* src/LibsslTLSContext.h
* src/MultiUrlRequestInfo.cc
* src/OptionHandlerFactory.cc
* src/SocketCore.cc
* src/SocketCore.h
* src/a2functional.h
* src/message.h
* src/option_processing.cc
* src/prefs.cc
* src/prefs.h
* src/usage_text.h
Added client certificate authentication for SSL/TLS.
Currently a private key must be decrypted for use with aria2.
If a user accidentally gives encrypted file to aria2 then
following thing happens:
If encrypted private key is given to aria2, it behaves
differently depending on the ssl library it uses. If aria2 built
with openssl then openssl prompts the user for password.
If aria2 build with gnutls then aria2 exists with error at start up.
* src/DownloadEngineFactory.cc
* src/MultiUrlRequestInfo.cc
* src/OptionHandlerFactory.cc
* src/option_processing.cc
* src/prefs.cc
* src/prefs.h
* src/usage_text.h
Introduced TLSContext that holds TLS related data that can be
shared with multiple SSL connections.
* src/DownloadEngineFactory.cc
* src/LibgnutlsTLSContext.cc
* src/LibgnutlsTLSContext.h
* src/LibsslTLSContext.cc
* src/LibsslTLSContext.h
* src/Makefile.am
* src/SocketCore.cc
* src/SocketCore.h
* src/TLSContext.h
* src/message.h
Fixed the bug that the DiskWriter of the first FileEntry whose
`needsFileAllocation' property is false is not created
even if it shares a piece with next FileEntry which `requested'
property is true.
Fixed the bug that zero-length file is not created if pre file
allocation is not done.
* src/MultiDiskAdaptor.cc
* src/MultiDiskAdaptor.h
* test/MultiDiskAdaptorTest.cc
Added the ability to pool proxy connection.
The conneciton in FTP with proxy-method=GET is not pooled.
Proxy-Connection header will not be sent when sending CONNECT
method.
* src/DownloadEngine.cc
* src/DownloadEngine.h
* src/FtpFinishDownloadCommand.cc
* src/FtpInitiateConnectionCommand.cc
* src/FtpNegotiationCommand.cc
* src/HttpDownloadCommand.cc
* src/HttpInitiateConnectionCommand.cc
* src/HttpRequest.cc
* src/HttpRequest.h
* src/HttpResponse.cc
* src/HttpSkipResponseCommand.cc
* test/HttpRequestTest.cc
* test/HttpResponseTest.cc
Added support for following envrionment variables: http_proxy,
https_proxy, ftp_proxy and all_proxy.
Each variable is equivalent to the aria2 option whose name is
the variable name with '_' replaced with '-'.
They overrides options specified in aria2.conf file.
The envrionment variables can be overrode using command-line
option.
* src/option_processing.cc
Treat Cookie object as session cookie if expiry = 0 is given.
With this change, you can specify session scoped cookies in an
external file setting expiry value to 0.
* src/Cookie.cc
* src/Cookie.h
* test/CookieParserTest.cc
* test/CookieStorageTest.cc
* test/CookieTest.cc
Changed signature of DHTMessageFactory::createResponseMessage().
Removed unused validateIDMatch.
* src/DHTMessageFactory.h
* src/DHTMessageFactoryImpl.cc
* src/DHTMessageFactoryImpl.h
* src/DHTMessageTracker.cc
* test/DHTMessageFactoryImplTest.cc
* test/MockDHTMessageFactory.h
Dropped DHT message coming from same ID of localhost.
* src/DHTMessageReceiver.cc
Rejected adding node whose ID is the same as localhost's.
* src/DHTRoutingTable.cc
* test/BtPortMessageTest.cc
* test/DHTRoutingTableTest.cc
Fixed the bug that causes time out when redirection occurs with
content-length 0.
* src/HttpResponseCommand.cc
* src/HttpSkipResponseCommand.cc
* src/HttpSkipResponseCommand.h
Now each status legends is shown only when it appears in Download
Result. If Download Result has no item, then status legend will not
be printed.
* src/RequestGroupMan.cc
Fixed the bug that causes segmentation fault when accessing files which
don't exist or are not included in --select-file option while
validating chunk checksum.
* src/MultiDiskAdaptor.cc
Added length equality test to operator== to drop a piece message
whose length does not match to the requested one.
* src/RequestSlot.cc
* test/DefaultBtMessageDispatcherTest.cc
Fixed the bug that aria2 aborts when a request larger than 16KiB
is
recieved.
In this fix, if a request larger than 16KiB length is received,
aria2
disconnects the peer.
* src/BtConstants.h
* src/PeerMessageUtil.cc
* src/PeerMessageUtil.h
* test/BtRequestMessageTest.cc
Added Ukrainian, Vietnamese, Traditional Chinese translations.
Updated French, Simplified Chinese and Japanese translations.
Thanks to all translators.
en@quot and en@boldquot are also added.
* po/LINGUAS
* po/fr.po
* po/ja.po
* po/uk.po
* po/vi.po
* po/zh_CN.po
* po/zh_TW.po
Added --auto-save-interval=SEC option. A control file(*.aria2)
is saved
every SEC seconds.
* src/DownloadEngineFactory.cc
* src/OptionHandlerFactory.cc
* src/option_processing.cc
* src/usage_text.h
Fixed compile warning on linux-amd64
* src/FtpConnection.cc
* src/IteratableChunkChecksumValidator.cc
* src/MultiDiskAdaptor.cc
Fixed the bug that unit test fails on linux-amd64
* test/UtilTest.cc
Added --dht-file-path option to change the path to dht.dat,
which is a
serialized DHT routing table.
* src/OptionHandlerFactory.cc
* src/option_processing.cc
* src/usage_text.h
Fixed the bug that referer header field contains fragment.
Now Request class removes fragment part of URI and encodes it
in Request::setUri() and setReferer().
* src/Request.h
* src/Request.cc
* test/RequestTest.cc
Updated French, Simplified Chinese, German, Bulgarian and
Japanese
translations. Thanks to all translators.
* po/bg.po
* po/de.po
* po/fr.po
* po/ja.po
* po/zh_CN.po
Use sqlite3_open if sqlite3_open_v2 is not available.
* src/Sqlite3MozCookieParser.cc
* src/Sqlite3MozCookieParser.h
* m4/sqlite3.m4
* test/Sqlite3MozCookieParserTest.cc
Use seek() and SetEndOfFile() for mingw32 build instead of
ftruncate(),
because mingw32's ftruncate() cannot handle more than 2GB-size
file.
* src/AbstractDiskWriter.cc
Don't set Request::supportsPersistentConnection() in
HttpConnection
since this code is also used in AbstractProxyResponseCommand.
Moved those code to HttpResponse.
* src/HttpResponse.cc
* src/HttpResponse.h
* src/HttpConnection.cc
* src/HttpConnection.h
* src/HttpResponseCommand.cc
* test/HttpResponseTest.cc
Fixed compile error with debian mingw32 cross compiler(4.2.1).
The configuration is minimum: no torrent, no metalink, so there
may be
other compile error on their code.
* src/a2netcompat.h
* src/File.cc
* src/File.h
* src/SocketCore.cc
* src/SocketCore.h
Fixed the bug that aria2 may send duplicate data to BitTorrent
peer if
whole message data is not sent in one send() call.
* src/BtPieceMessage.cc
* src/BtPieceMessage.h
* src/PeerConnection.cc
* src/PeerConnection.h
* src/SimpleBtMessage.cc
* src/SimpleBtMessage.h
Fixed the bug that aria2 downloads faster than
max-download-limit when
downloading file using both HTTP(or FTP) and BitTorrent, because
aria2
evaluates speed separatly(HTTP and BiTorrent) against
max-download-limit
, instead of sum of them.
* src/ActivePeerConnectionCommand.cc
* src/DefaultBtInteractive.cc
* src/DownloadCommand.cc
* src/PeerInteractionCommand.cc
* src/PeerReceiveHandshakeCommand.cc
When error occurs while aria2 is parsing an command-line option,
print
the usage of the option.
* src/Makefile.am
* src/NameMatchOptionHandler.h
* src/OptionHandlerException.h
* src/option_processing.cc
Reverted previous change.
Insert username+'@' to URI(after ftp://) when URI is FTP scheme
and
username is not in URI.
* src/HttpRequest.cc
* src/Request.cc
* test/HttpRequestTest.cc
* test/RequestTest.cc
Now colon is required for username and password in FTP URL,
like:
ftp://username:password@host.
If colon is not there, aria2 don't parse it as a username. For
example,
aria2 don't retrieve username from ftp://username@host.
This fix was made in order to login FTP server via
non-transparent ftp
proxy.
* src/Request.cc
* test/RequestTest.cc
Use netrc for HTTP.
Now FTP user/password is sent in Authorization header when
--ftp-via-http-proxy=get is given.
* src/AuthConfigFactory.cc
* src/HttpRequest.cc
* src/HttpRequest.h
* src/NetrcAuthResolver.cc
* src/NetrcAuthResolver.h
* src/OptionHandlerFactory.cc
* src/option_processing.cc
* src/prefs.cc
* src/prefs.h
* test/AuthConfigFactoryTest.cc
* test/HttpRequestTest.cc
* test/NetrcAuthResolverTest.cc
Issue PWD command first and get working directory and use it as
a prefix
for CWD command.
* src/DownloadEngine.cc
* src/DownloadEngine.h
* src/FtpConnection.cc
* src/FtpConnection.h
* src/FtpFinishDownloadCommand.cc
* src/FtpInitiateConnectionCommand.cc
* src/FtpNegotiationCommand.cc
* src/FtpNegotiationCommand.h
* test/FtpConnectionTest.cc
Fixed the bug that a block in a piece is requested when same
block is
already requested to the same peer in end game mode.
* src/BtRequestFactory.h
* src/DefaultBtInteractive.cc
* src/DefaultBtRequestFactory.cc
* src/DefaultBtRequestFactory.h
* src/DefaultPieceStorage.cc
* src/DefaultPieceStorage.h
* src/PieceStorage.h
* src/UnknownLengthPieceStorage.cc
* src/UnknownLengthPieceStorage.h
* test/DefaultBtRequestFactoryTest.cc
* test/DefaultPieceStorageTest.cc
* test/MockBtRequestFactory.h
* test/MockPieceStorage.h
Removed _uploadLength and _downloadLength from
PeerSessionResource
and use PeerStat::_sessionUploadLength and
PeerStat::_sessionDownloadLength.
* src/PeerSessionResource.cc
* src/PeerSessionResource.h
Fixed the bug that prefixLength of split bucket which doesn't
include
local node ID is incremented.
* src/DHTBucket.cc
* src/DHTBucket.h
* test/DHTBucketTest.cc
Moved isProxyGETRequest function outside #ifdef ENABLE_ASYNC_DNS
clause
to fix compile error when async DNS is not enabled by
configuration.
* src/AbstractCommand.cc
If establishing conneciton to a server is failed, then mark
error on
its ServerStat.
Added the cause of error to log when error event occurred.
Moved message string to message.h for translation.
* src/AbstractCommand.cc
* src/AbstractCommand.h
* src/FtpNegotiationCommand.cc
* src/HttpRequestCommand.cc
* src/PeerAbstractCommand.cc
* src/message.h
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