Tatsuhiro Tsujikawa
b9436e4d12
Fix uninitialized values
2013-05-23 00:45:50 +09:00
Tatsuhiro Tsujikawa
1c571f196a
Refactor Notifier interface to accept DownloadEventListener interface
...
WebSocketSessionMan now implements DownloadEventListener and is added
to Notifier. It becomes member variable of DownloadEngine. The event
constant for download event is defined in aria2.h so that we can add
event callback API later.
2013-05-11 18:50:03 +09:00
Tatsuhiro Tsujikawa
3a4acead2d
Reset global::globalHaltRequested to 0 in MultiUrlRequestInfo::prepare()
2013-05-05 17:47:14 +09:00
Tatsuhiro Tsujikawa
ebfc5f55e5
Add SessionConfig to store per Session config
...
sessionConfigSetKeepRunning() was removed and SessionConfig has
keepRunning member instead. Signal handlers are now all prepared in
MultiUrlRequestGroup object. Setting SessionConfig.useSignalHandler to
false will avoid signal handler setup.
2013-05-04 23:56:19 +09:00
Tatsuhiro Tsujikawa
6fcf274f27
Add initialization function and addUri API function for libaria2
2013-04-26 23:59:48 +09:00
Tatsuhiro Tsujikawa
90abec8a36
Move initialization code in aria2::main to struct Context
2013-04-25 21:46:31 +09:00
Nils Maier
82a861f8d8
AppleTLS: Support credentials via KeyChain fingerprints
2013-04-08 06:45:53 +02:00
Nils Maier
0bcbd947b4
AppleTLS: Implement AppleTLS and Apple Message Digest
2013-04-05 23:10:47 +02:00
Tatsuhiro Tsujikawa
0741a14486
Revert 6b55f5d3
because it breaks opensolaris build
2013-03-17 15:42:16 +09:00
Tatsuhiro Tsujikawa
6b55f5d393
Do changes in 8aa1db6
in other places which include signal.h
2013-03-03 13:41:03 +09:00
Nils Maier
d1301b8697
Do not reference RequestGroups longer than necessary
...
There is an initial vector of SharedHandle<RequestGroup> to seed the
DownloadEngine. This vector was however kept alive via main.cc ->
MultiUrlRequestInfo up until the program exits, hence effetively leaking
all initial RequestGroups and associated object instances.
Hence, as a matter of dirty-workaround, drop the contents of that initial
vector as soon as it is not required any longer.
2013-02-26 10:49:24 +01:00
Tatsuhiro Tsujikawa
61665d2c26
Set sa_mask when setting signal handler
2013-02-14 21:51:30 +09:00
Tatsuhiro Tsujikawa
0ecfa19925
Reworked download/upload statistics calculation
...
The old implementation calculates download/upload statistics for a
RequestGroup by summing up all PeerStat objects. For global
statistics, those are summed together. This clearly incurs runtime
penalty and we introduced some kind of caching which updates
statistics every 250ms but it did not work right.
This change removes all these aggregation code, and instead makes
RequestGroup and RequestGroupMan objects hold NetStat object and
download/upload bytes are directly calculated by thier own NetStat.
This is far more simplar than the old way and less runtime penalty and
brings more accuracy.
2012-10-25 23:33:45 +09:00
Tatsuhiro Tsujikawa
90515dfa50
RPC over SSL/TLS transport
...
To enable RPC over SSL/TLS, specify server certificate and private key
using --rpc-certificate and --rpc-private-key options and enable
--rpc-secure option. After the encryption is enabled, use https and
wss scheme to access RPC server.
2012-09-30 00:50:14 +09:00
Tatsuhiro Tsujikawa
3258614033
Removed *Handle typedef
2012-09-28 23:27:46 +09:00
Tatsuhiro Tsujikawa
4046f27ea9
Use system-wide certificates for SSL
...
Use system-wide certificates for SSL. For GnuTLS it requires the
latest version, 3.0.20. OpenSSL had it for longer. This means that if
SSL library is properly configured to locate system-wide certificates
store, the user don't have to use --ca-certificate option. Also
packagers don't have to use --with-ca-bundle configure option.
Patch from Cristian Morales Vega
2012-07-05 23:22:34 +09:00
Tatsuhiro Tsujikawa
92c518a2ba
Moved parseAsyncDNSServers() to AsyncNameResolver.cc and refactored.
...
The parseAsyncDNSServers() now uses net::getBinAddr() internally,
which makes the function simpler. Also added unit test.
2012-05-16 23:05:09 +09:00
Tatsuhiro Tsujikawa
fcbdecfd1e
Conditional compile for WebSocket.
...
WebSocket support depends on Message Digest support.
2012-04-08 00:50:25 +09:00
Tatsuhiro Tsujikawa
f4e2c7f060
Added JSON-RPC over WebSocket.
...
Wslay library must be placed under deps/wslay.
2012-03-20 21:42:09 +09:00
Tatsuhiro Tsujikawa
f2d55f0edc
Added --deferred-input option.
...
If true is given to --deferred-input option, aria2 does not read all
URIs and options from file specified by -i option at startup, but it
reads one by one when it needs later. This may reduce memory usage if
input file contains a lot of URIs to download. If false is given,
aria2 reads all URIs and options at startup. This option defaults to
false.
2012-02-05 18:57:16 +09:00
Tatsuhiro Tsujikawa
26d4ca8a6a
Made notice level log messages translatable
2011-12-02 22:38:53 +09:00
Tatsuhiro Tsujikawa
f84d2253b2
Rewritten util::split and added its iterator version.
...
Iterator based functions util::startsWith, util::endsWith,
util::streq, util::strieq were added.
2011-11-04 22:27:58 +09:00
Tatsuhiro Tsujikawa
c01c34f24a
Use sockaddr_union in parseAsyncDNSServers().
2011-10-19 23:29:23 +09:00
Tatsuhiro Tsujikawa
f7aeb86ccc
Added --download-result option.
...
Added --download-result=OPT option. This option changes the way
"Download Results" is formatted. If OPT is 'default', print GID,
status, average download speed and path/URI. If multiple files are
involved, path/URI of first requested file is printed and remaining
ones are omitted. If OPT is 'full', print GID, status, average
download speed, percentage of progress and path/URI. The percentage of
progress and path/URI are printed for each requested file in each row.
2011-08-22 23:05:06 +09:00
Tatsuhiro Tsujikawa
a10cda2f17
Use global::cout to output string to stdout.
...
In MinGW32 build, global::cout is WinConsoleFile. When outputing to
console, it uses WriteConsoleW, so Unicode characters are written.
Fixed memory leak in WChar<->MultiByte conversion functions. The
portion of code which uses std::cout is rewritten to use global::cout.
2011-08-09 23:33:55 +09:00
Tatsuhiro Tsujikawa
00fa59d0f5
Fixed the bug that the message "Loaded cookies from ..." appears when
...
loading cookies from that file failed.
2011-05-12 09:39:03 +09:00
Tatsuhiro Tsujikawa
46eced8ada
Fixed compile error and unit test error without SSL library.
2011-03-17 16:08:39 +09:00
Tatsuhiro Tsujikawa
f16aef227d
Fixed compile error with c-ares 1.7.0
2011-02-19 01:57:16 +09:00
Tatsuhiro Tsujikawa
d3d1293974
Check the availability of ares_set_servers and ares_addr_node.
2011-02-18 01:04:11 +09:00
Tatsuhiro Tsujikawa
f0682a98c0
Added --async-dns-server option.
...
This option accepts comma separated list of DNS server address used in
asynchronous DNS resolver. Usually asynchronous DNS resolver reads DNS
server addresses from /etc/resolv.conf. When this option is used, it
uses DNS servers specified in this option instead of ones in
/etc/resolv.conf. You can specify both IPv4 and IPv6 address. This
option is useful when the system does not have /etc/resolv.conf and
user does not have the permission to create it.
2011-02-08 23:05:40 +09:00
Tatsuhiro Tsujikawa
426e57a180
Don't check permission of .netrc file in MinGW32 build.
2011-01-17 22:36:19 +09:00
Tatsuhiro Tsujikawa
947967fc63
Renamed DownloadErrorCode.h as error_code.h. Renamed
...
downloaderrorcode::Value as error_code::Value.
2010-11-28 16:52:02 +09:00
Tatsuhiro Tsujikawa
580098eb49
2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Rewritten Logger interface. Logger now writes source file name and
line number in log file.
2010-11-20 08:21:36 +00:00
Tatsuhiro Tsujikawa
1d77c67f1b
2010-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Removed unused includes.
2010-11-14 08:12:38 +00:00
Tatsuhiro Tsujikawa
236e64cb25
2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Use unnamed namespace instead of static keyword.
* src/AbstractCommand.cc
* src/AdaptiveURISelector.cc
* src/Base64.cc
* src/BitfieldMan.cc
* src/BtDependency.cc
* src/ConsoleStatCalc.cc
* src/ContentTypeRequestGroupCriteria.cc
* src/CookieStorage.cc
* src/DHTMessageFactoryImpl.cc
* src/DHTRoutingTableDeserializer.cc
* src/DefaultBtAnnounce.cc
* src/DefaultBtProgressInfoFile.cc
* src/DefaultPeerStorage.cc
* src/DefaultPieceStorage.cc
* src/DownloadCommand.cc
* src/DownloadEngine.cc
* src/EpollEventPoll.cc
* src/ExpatMetalinkProcessor.cc
* src/ExpatXmlRpcRequestProcessor.cc
* src/FileEntry.cc
* src/HttpRequest.cc
* src/HttpRequestCommand.cc
* src/HttpResponseCommand.cc
* src/KqueueEventPoll.cc
* src/LongestSequencePieceSelector.cc
* src/MetalinkParserStateV3Impl.cc
* src/MetalinkParserStateV4Impl.cc
* src/MultiDiskAdaptor.cc
* src/MultiUrlRequestInfo.cc
* src/OptionParser.cc
* src/PeerSessionResource.cc
* src/PortEventPoll.cc
* src/Request.cc
* src/RequestGroupMan.cc
* src/SelectEventPoll.cc
* src/SessionSerializer.cc
* src/SimpleLogFormatter.cc
* src/Sqlite3CookieParser.cc
* src/TrackerWatcherCommand.cc
* src/XML2SAXMetalinkProcessor.cc
* src/Xml2XmlRpcRequestProcessor.cc
* src/XmlRpcMethod.cc
* src/XmlRpcMethodImpl.cc
* src/XmlRpcResponse.cc
* src/base32.cc
* src/bencode2.cc
* src/bittorrent_helper.cc
* src/download_helper.cc
* src/main.cc
* src/messageDigest.cc
* src/option_processing.cc
* src/util.cc
* test/AnnounceListTest.cc
* test/BtRegistryTest.cc
* test/DHTBucketTest.cc
* test/DHTRoutingTableTest.cc
* test/DefaultBtAnnounceTest.cc
* test/FileEntryTest.cc
* test/FtpConnectionTest.cc
* test/MSEHandshakeTest.cc
* test/MagnetTest.cc
* test/XmlRpcMethodTest.cc
* test/array_funTest.cc
2010-10-30 16:02:15 +00:00
Tatsuhiro Tsujikawa
983b6006fd
2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Append 'u' to hex mask.
* src/Base64.cc
* src/BitfieldMan.cc
* src/BtHandshakeMessage.cc
* src/BtHandshakeMessage.h
* src/DHTBucket.cc
* src/DHTRoutingTableDeserializer.cc
* src/DHTRoutingTableSerializer.cc
* src/DefaultBtProgressInfoFile.cc
* src/MSEHandshake.h
* src/MultiUrlRequestInfo.cc
* src/Platform.cc
* src/SpeedCalc.cc
* src/UTPexExtensionMessage.cc
* src/a2netcompat.h
* src/base32.cc
* src/bitfield.h
* src/bittorrent_helper.cc
* src/cookie_helper.cc
* src/util.h
2010-10-10 03:08:30 +00:00
Tatsuhiro Tsujikawa
8b17d4b276
2010-10-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Rewritten Cookie class and Cookie parser based on
http://tools.ietf.org/html/draft-ietf-httpstate-cookie-14 with
some modifications. When parsing cookie date, match time first so
that it parses asctime() format. The request-path must be ends
with '/' so that request-path '/foo/' path-matches cookie-path
'/foo' and '/foo/' in the proposed algorithm.
* src/Cookie.cc
* src/Cookie.h
* src/CookieParser.cc: Removed
* src/CookieParser.h: Removed
* src/CookieStorage.cc
* src/CookieStorage.h
* src/HttpResponse.cc
* src/Makefile.am
* src/Makefile.in
* src/MultiUrlRequestInfo.cc
* src/NsCookieParser.cc
* src/NsCookieParser.h
* src/Sqlite3CookieParser.cc
* src/Sqlite3CookieParser.h
* src/a2functional.h
* src/cookie_helper.cc
* src/cookie_helper.h
* src/util.cc
* src/util.h
* test/CookieBoxFactoryTest.cc: Removed
* test/CookieHelperTest.cc
* test/CookieParserTest.cc: Removed
* test/CookieStorageTest.cc
* test/CookieTest.cc
* test/HttpRequestTest.cc
* test/Makefile.am
* test/Makefile.in
* test/NsCookieParserTest.cc
* test/Sqlite3CookieParserTest.cc
* test/TestUtil.cc
* test/TestUtil.h
* test/a2functionalTest.cc
* test/chromium_cookies.sqlite
* test/cookies.sqlite
* test/nscookietest.txt
2010-10-09 14:22:49 +00:00
Tatsuhiro Tsujikawa
329de2a9b5
2010-10-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Reverted the previous change in src/MultiUrlRequestInfo.cc.
Change log level of warning message about CA certificates to info.
* src/MultiUrlRequestInfo.cc
2010-10-03 14:13:03 +00:00
Tatsuhiro Tsujikawa
be2cd51e1b
2010-10-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Removed warning message when CA certificates are not imported.
--ca-certificate and --check-certificate option were added to the
error message displayed when certificate verification failed.
* src/MultiUrlRequestInfo.cc
* src/message.h
2010-10-03 14:07:57 +00:00
Tatsuhiro Tsujikawa
c51815dd52
2010-09-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Use const ref
* src/MultiUrlRequestInfo.cc
2010-09-08 14:39:34 +00:00
Tatsuhiro Tsujikawa
ca4940622c
2010-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Changed naming standards for class member variable: now it looks
like var_ instead of _var.
2010-06-21 13:51:56 +00:00
Tatsuhiro Tsujikawa
7cd9b21937
2010-06-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Made public member variables of DownloadEngine private. Added
accessor funcs.
2010-06-08 14:11:36 +00:00
Tatsuhiro Tsujikawa
5d80399624
2010-06-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Added log message when cookies are loaded. Added filename to log
message when serializing session.
* src/MultiUrlRequestInfo.cc
2010-06-03 12:13:21 +00:00
Tatsuhiro Tsujikawa
bf5e76a9a2
2010-06-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Treat SIGHUP and SIGTERM signal as emergency shutdown because they
are usually issued by system or other process.
* src/MultiUrlRequestInfo.cc
2010-06-03 11:52:44 +00:00
Tatsuhiro Tsujikawa
473d1ff6b5
2010-04-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Added warning for the system which lacks clock_gettime with
CLOCK_MONOTONIC.
* src/MultiUrlRequestInfo.cc
* src/TimerA2.cc
* src/TimerA2.h
2010-04-12 13:05:41 +00:00
Tatsuhiro Tsujikawa
5cd0108f93
2010-04-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Added --save-session=FILE option. This option saves
error/unfinished downloads to FILE on exit. You can pass this
output file to aria2c with -i option on restart. Please note that
downloads added by aria2.addTorrent and aria2.addMetalink XML-RPC
method are not saved.
* src/BtPostDownloadHandler.cc
* src/DownloadResult.h
* src/Makefile.am
* src/MetadataInfo.cc
* src/MetadataInfo.h
* src/Metalink2RequestGroup.cc
* src/MetalinkPostDownloadHandler.cc
* src/MultiUrlRequestInfo.cc
* src/OptionHandlerFactory.cc
* src/RequestGroup.cc
* src/RequestGroup.h
* src/SessionSerializer.cc
* src/SessionSerializer.h
* src/UTMetadataPostDownloadHandler.cc
* src/download_helper.cc
* src/download_helper.h
* src/prefs.cc
* src/prefs.h
* src/usage_text.h
* test/Makefile.am
* test/SessionSerializerTest.cc
* test/XmlRpcMethodTest.cc
* test/serialize_session.meta4
2010-04-08 12:54:14 +00:00
Tatsuhiro Tsujikawa
8d09b069e2
2010-03-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Added Time global::wallclock to cache "current time" to reduce the
call gettimeofday(). Global variables are now in namespace global.
* src/AbstractCommand.cc
* src/ActivePeerConnectionCommand.cc
* src/AdaptiveURISelector.cc
* src/BtLeecherStateChoke.cc
* src/BtLeecherStateChoke.h
* src/BtSeederStateChoke.cc
* src/BtSeederStateChoke.h
* src/BtStopDownloadCommand.cc
* src/ConsoleStatCalc.cc
* src/DHTBucket.cc
* src/DHTGetPeersCommand.cc
* src/DHTMessageTrackerEntry.cc
* src/DHTNode.cc
* src/DHTPeerAnnounceEntry.cc
* src/DHTPeerAnnounceStorage.cc
* src/DHTSetup.cc
* src/DefaultBtAnnounce.cc
* src/DefaultBtInteractive.cc
* src/DefaultBtMessageDispatcher.cc
* src/DefaultPeerStorage.cc
* src/DefaultPieceStorage.cc
* src/DownloadCommand.cc
* src/DownloadEngine.cc
* src/FileEntry.cc
* src/HttpServerBodyCommand.cc
* src/HttpServerCommand.cc
* src/HttpServerResponseCommand.cc
* src/LpdMessageDispatcher.cc
* src/MultiUrlRequestInfo.cc
* src/Peer.cc
* src/Peer.h
* src/PeerAbstractCommand.cc
* src/PeerStat.h
* src/RequestSlot.cc
* src/RequestSlot.h
* src/SegmentMan.cc
* src/ServerStatMan.cc
* src/SleepCommand.cc
* src/SpeedCalc.cc
* src/SpeedCalc.h
* src/TimeA2.cc
* src/TimeA2.h
* src/TimeBasedCommand.cc
* src/TimeSeedCriteria.h
* src/UTMetadataRequestTracker.h
* src/UTPexExtensionMessage.cc
* src/wallclock.h
2010-03-06 08:29:53 +00:00
Tatsuhiro Tsujikawa
c342bde962
2010-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Use vector instead of deque for containers which is used for
mostly read-only purpose.
2010-02-28 12:30:11 +00:00
Tatsuhiro Tsujikawa
2097b5e29a
2010-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Fixed the bug that aria2 doesn't handle return value if error
occurred before download begins.
* src/MultiUrlRequestInfo.cc
* src/main.cc
2010-02-12 13:53:52 +00:00
Tatsuhiro Tsujikawa
be20b46c19
2010-01-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Fixed compile error with i586-mingw32msvc-gcc 4.4.2, without any
additional libraries.
* src/MultiUrlRequestInfo.cc
* src/NameResolver.cc
* src/SelectEventPoll.cc
* src/SelectEventPoll.h
* src/SocketCore.cc
* src/SocketCore.h
* src/a2netcompat.h
* src/daemon.cc
* src/main.cc
2010-01-09 13:06:45 +00:00