Commit Graph

707 Commits (72d21885d100fff8fe2ce7d837a77fb63c9d3964)

Author SHA1 Message Date
Tatsuhiro Tsujikawa 2283c5ee14 2008-08-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed: numCommand is less than the value specified in -C option.
	* src/RequestGroup.cc
2008-08-13 16:15:31 +00:00
Tatsuhiro Tsujikawa 326d11bc46 2008-08-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed occasional assertion failure in PieceSegment.
	Calling PieceStorage::getMissingPiece(size_t) was missing after
	canceling segments in SegmentMan::getSegment(int32_t). This 
resulted in
	creation of duplicate segments and one of the segment was 
finished then
	assertion failure was caused.
	* src/SegmentMan.cc
	* test/SegmentManTest.cc
2008-08-13 16:13:54 +00:00
Tatsuhiro Tsujikawa db46bab38b 2008-08-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added options to load/save the server's performance/status to a	
file
	and the timeout to drop their data.
	--server-stat-of=FILE specifies the file to which performance 
data
	is saved.
	--server-stat-if=FILE specifies the file to read previously 
saved
	by --server-stat-of option. Might be used with 
--uri-selector=feedback.
	--server-stat-timeout=TIMEOUT specifies timeout to invalidate 
the data.
	TIMEOUT is specified in seconds and the default value is 
24hours.
	* src/MultiUrlRequestInfo.cc
	* src/OptionHandlerFactory.cc
	* src/RequestGroupMan.cc
	* src/RequestGroupMan.h
	* src/ServerStatMan.cc
	* src/ServerStatMan.h
	* src/option_processing.cc
	* src/prefs.cc
	* src/prefs.h
	* test/ServerStatManTest.cc
2008-08-10 15:22:55 +00:00
Tatsuhiro Tsujikawa 6aba376430 2008-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Implemented ServerStatMan::removeStaleServerStat() and its test 
case.
	* src/ServerStatMan.cc
	* src/ServerStatMan.h
	* test/ServerStatManTest.cc
2008-08-09 13:30:40 +00:00
Tatsuhiro Tsujikawa d85014b937 2008-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Implemented ServerStatMan::load(...) function and its test case.
	* src/ServerStat.cc
	* src/ServerStat.h
	* src/ServerStatMan.cc
	* test/ServerStatManTest.cc
	* test/ServerStatTest.cc
2008-08-09 11:29:27 +00:00
Tatsuhiro Tsujikawa 8208e538ba 2008-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use time_t instead of int32_t. Use int64_t where milli second is
	expected.
	* src/TimeA2.cc
	* src/TimeA2.h
2008-08-09 10:31:29 +00:00
Tatsuhiro Tsujikawa 26690f692b 2008-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Implemented ServerStatMan::save(...) function and its test case.
	* src/ServerStat.cc
	* src/ServerStat.h
	* src/ServerStatMan.cc
	* src/ServerStatMan.h
	* test/ServerStatManTest.cc
2008-08-09 09:59:56 +00:00
Tatsuhiro Tsujikawa 70b457da01 2008-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Now aria2 uses name attribute in Metalink as local filename in
	BitTorrent downloads. BUG#2033999
	* src/BtContext.h
	* src/BtDependency.cc
	* src/DefaultBtContext.cc
	* src/DefaultBtContext.h
	* src/SingleFileDownloadContext.cc
	* src/SingleFileDownloadContext.h
	* test/BtDependencyTest.cc
	* test/DefaultBtContextTest.cc
	* test/MockBtContext.h
2008-08-08 16:44:59 +00:00
Tatsuhiro Tsujikawa a699a46858 2008-08-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Limited numCommand less than or equal to the number of piece.
	* src/RequestGroup.cc
2008-08-07 15:24:13 +00:00
Tatsuhiro Tsujikawa 817aee5dc8 2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed wrong argument passing to BitfieldMan::isBitSet()
	* src/DefaultPieceStorage.cc
2008-08-07 14:19:40 +00:00
Tatsuhiro Tsujikawa 8af9c60ebf 2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Initialized _directIOAllowed
	* src/MultiDiskAdaptor.cc
2008-08-07 14:16:49 +00:00
Tatsuhiro Tsujikawa f8b4d0d1bd 2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed memory leak
	* src/GZipDecoder.cc
2008-08-07 14:15:39 +00:00
Tatsuhiro Tsujikawa 747e9a0b23 2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed memory leak
	* src/MetalinkParserStateMachine.cc
2008-08-07 14:14:49 +00:00
Tatsuhiro Tsujikawa 4eacf0436a 2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed memory leak
	* src/Dictionary.cc
2008-08-07 14:13:21 +00:00
Tatsuhiro Tsujikawa 52f4cbbc20 2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed memory leak
	* src/IteratableChunkChecksumValidator.h
2008-08-07 14:12:28 +00:00
Tatsuhiro Tsujikawa ef5c01ad33 2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed unmatched malloc/free.
	* src/IteratableChunkChecksumValidator.cc
	* src/IteratableChecksumValidator.cc
2008-08-07 14:11:16 +00:00
Tatsuhiro Tsujikawa 49c4f82561 2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed max chunk size check. This change fixes BUG#2040169
	* src/ChunkedDecoder.cc
	* src/ChunkedDecoder.h
	* test/ChunkedDecoderTest.cc
2008-08-07 14:06:03 +00:00
Tatsuhiro Tsujikawa d64c8e75f6 2008-08-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Implemented download speed based URI selection algorithm.
	Introduced new option --uri-selector.
	If --uri-selector=feedback is given, aria2 uses download speed 
observed
	in the previous downloads and chooses fastest server in the URI 
list.
	Currently at most 10 URIs are considered to introduce 
randomeness for
	finding better servers. The speed is average download speed in 
the
	downloads.
	On the other hand, if --uri-selector=inorder is given, which is 
default,
	URI is tried in order in URI list.
	The usage text for the new option has not been written yet.
	* src/AbstractCommand.cc
	* src/DownloadCommand.cc
	* src/DownloadEngine.cc
	* src/DownloadEngineFactory.cc
	* src/InOrderURISelector.cc
	* src/InOrderURISelector.h
	* src/OptionHandlerFactory.cc
	* src/PeerStat.h
	* src/RequestGroup.cc
	* src/RequestGroup.h
	* src/RequestGroupMan.cc
	* src/RequestGroupMan.h
	* src/SegmentMan.cc
	* src/SegmentMan.h
	* src/ServerStat.cc
	* src/ServerStat.h
	* src/ServerStatMan.cc
	* src/ServerStatMan.h
	* src/ServerStatURISelector.cc
	* src/ServerStatURISelector.h
	* src/URISelector.h
	* src/option_processing.cc
	* src/prefs.cc
	* src/prefs.h
	* test/InOrderURISelectorTest.cc
	* test/RequestGroupManTest.cc
	* test/ServerStatManTest.cc
	* test/ServerStatURISelectorTest.cc
2008-08-04 17:06:47 +00:00
Tatsuhiro Tsujikawa e5730839cc 2008-08-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that causes segmentaion fault when resuming 
download
	using metalink without size tag. Reproducible only using HTTP 
URI.
	* src/HttpResponseCommand.cc
	* src/FtpNegotiationCommand.cc
2008-08-03 11:16:15 +00:00
Tatsuhiro Tsujikawa 6ccefc2dbc 2008-08-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Avoid repeated call of gettimeofday() when calculating speed.
	* src/SpeedCalc.cc
	* src/SpeedCalc.h
2008-07-31 15:27:39 +00:00
Tatsuhiro Tsujikawa dfe3b9bf15 2008-08-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed writable check when socket's send buffer is full in 
BitTorrent
	downloads to lower CPU usage.
	* src/PeerInteractionCommand.cc
2008-07-31 15:25:23 +00:00
Tatsuhiro Tsujikawa d3f05f44b7 2008-07-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed broken gzip inflation.
	Turn off segmented downloading if gzip content is smaller than 
or equal
	to 1MiB and inflate the data on the fly, because HTTP response 
header
	doesn't contain the length of inflated file we can't determin 
where
	the chunk of data should be written.
	On the other hand, if gzip content is larger than 1MB, then turn 
off
	on the fly inflation, because some servers returns 
"content-type: gzip"
	for *.tgz, *.gz files.
	* src/DownloadCommand.cc
	* src/HttpResponseCommand.cc
	* src/HttpResponseCommand.h
2008-07-31 12:42:28 +00:00
Ross Smith II 3d0b10e637 MinGW build fix 2008-07-23 18:59:53 +00:00
Tatsuhiro Tsujikawa 3e4b748412 2008-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added GZip to `Enabled Features' list.
	* src/FeatureConfig.cc
	* src/FeatureConfig.h
	* test/FeatureConfigTest.cc
2008-07-22 16:05:02 +00:00
Tatsuhiro Tsujikawa ec395b6a9c 2008-07-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Now SegmentMan::findSlowerSegmentEntry() picks up the segment 
for which
	the transfer has not yet started.
	Rewritten SegmentMan::registerPeerStat() and 
SegmentMan::getPeerStat().
	* src/SegmentMan.cc
	* src/SegmentMan.h
	* test/SegmentManTest.cc
2008-07-20 07:55:10 +00:00
Tatsuhiro Tsujikawa f242a1ec8f 2008-07-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Cache last calculated average download/upload speed.
	PeerStat::getAvgDownloadSpeed(), PeerStat::getAvgUploadSpeed() 
return
	cached value.
	Now SpeedCalc::changeSw() is called from 
SpeedCalc::calculateSpeed()
	* src/PeerStat.h
	* src/SpeedCalc.cc
	* src/SpeedCalc.h
2008-07-20 07:41:33 +00:00
Tatsuhiro Tsujikawa 4947fa39b3 2008-07-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Call parseUrl directly.
	* src/Request.cc (resetUrl)
2008-07-18 15:25:51 +00:00
Tatsuhiro Tsujikawa 5d2651c5ed 2008-07-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Supported absolute/relative path in Location header field.
	* src/AbstractCommand.cc: Call resetUrl() when DlRetryEx is 
caught.
	* src/HttpHeader.cc
	* src/HttpHeader.h
	* src/HttpResponse.cc
	* src/HttpSkipResponseCommand.cc
	* src/Request.cc
	* test/HttpHeaderTest.cc
	* test/HttpResponseTest.cc
	* test/RequestTest.cc
2008-07-18 15:20:52 +00:00
Tatsuhiro Tsujikawa 5122ae031d 2008-07-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed help text for --load-cookie option.
	* doc/aria2c.1.txt
	* src/usage_text.h
2008-07-18 15:12:38 +00:00
Tatsuhiro Tsujikawa 05d06e6e0d 2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Externalize messages.
	* src/RequestGroupMan.cc
	* src/message.h: Added MSG_SIGNATURE_SAVED, 
MSG_SIGNATURE_NOT_SAVED.
2008-07-13 12:15:56 +00:00
Tatsuhiro Tsujikawa f34a032d2e 2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use File::exists() instead of File::isFile() to allow 
non-regular file
	such as block spacial device.
	* src/AbstractDiskWriter.cc
	* src/MultiDiskWriter.cc
2008-07-13 10:38:30 +00:00
Tatsuhiro Tsujikawa b5d93cd0da 2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Supplied missing EAI_SYSTEM. Thanks ggknauf for the patch.
	* src/gai_strerror.h
2008-07-13 10:35:19 +00:00
Tatsuhiro Tsujikawa 29f1645004 2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compile error. Thanks gknauf for the patch.
	* src/asctime_r.c
2008-07-13 10:33:59 +00:00
Tatsuhiro Tsujikawa ca51ecfda1 2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Included asctime_r.h from a2time.h.
	* src/a2time.h
2008-07-13 10:30:31 +00:00
Tatsuhiro Tsujikawa efe93b87aa 2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added a message "aria2 doesn't verify signature" to log message 
when
	signature file is saved.
	* src/RequestGroupMan.cc
2008-07-12 15:30:08 +00:00
Tatsuhiro Tsujikawa aec1e9e7e1 2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added the ability to save signature when download is completed 
if
	signature is available. The filename of signature file is the 
path to
	download file followed by ".sig". If it already exists, then 
signature
	will not be saved.
	* src/RequestGroupMan.cc
	* src/Signature.cc
	* test/SignatureTest.cc
2008-07-12 15:09:03 +00:00
Tatsuhiro Tsujikawa 7fc0de4f5b 2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Renamed --bt-seed option as --bt-seed-unverified so that it 
makes clear
	that this is not going to verify files using piece hashes.
	* src/HelpItemFactory.cc
	* src/OptionHandlerFactory.cc
	* src/RequestGroup.cc
	* src/option_processing.cc
	* src/prefs.cc
	* src/prefs.h
	* src/usage_text.h
2008-07-12 13:54:36 +00:00
Tatsuhiro Tsujikawa 5472c8033e 2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added the ability to retrieve signature from Metalink file.
	A retrieved signature is stored in Signature class and it is 
held by
	DownloadContext class. Note that aria2 doesn't verify signature.
	* src/DownloadContext.cc
	* src/DownloadContext.h
	* src/Makefile.am
	* src/Makefile.in
	* src/Metalink2RequestGroup.cc
	* src/MetalinkEntry.cc
	* src/MetalinkEntry.h
	* src/MetalinkParserController.cc
	* src/MetalinkParserController.h
	* src/MetalinkParserStateMachine.cc
	* src/MetalinkParserStateMachine.h
	* src/Signature.cc
	* src/Signature.h
	* src/SignatureMetalinkParserState.cc
	* src/SignatureMetalinkParserState.h
	* src/VerificationMetalinkParserState.cc
	* src/VerificationMetalinkParserState.h
	* test/Metalink2RequestGroupTest.cc
	* test/MetalinkParserControllerTest.cc
	* test/MetalinkProcessorTest.cc
	* test/test.xml
2008-07-12 13:35:35 +00:00
Tatsuhiro Tsujikawa 6796e1c805 2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Close DiskAdaptor after renaming file.
	* src/RequestGroup.cc
2008-07-12 07:54:06 +00:00
Tatsuhiro Tsujikawa 8da16ce38c 2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Corrected indentation
	* src/DefaultBtProgressInfoFile.cc
2008-07-12 07:52:23 +00:00
Tatsuhiro Tsujikawa c3fbc48d4c 2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Moved the calls of std::ios::exceptions() inside of try-catch 
block
	because if an error occurred in constructor of std::fstream, 
then
	exception is thrown immediately when std::ios::exceptions() is 
called
	which results unhandled exception and aria2c aborts.
	* src/DefaultBtProgressInfoFile.cc
2008-07-12 07:46:33 +00:00
Tatsuhiro Tsujikawa 8929168380 2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that causes infinite loop when the number of 
pieces are
	fewer than allowed fast set size which is 10 by default.
	* src/DefaultBtContext.cc
2008-07-12 07:25:10 +00:00
Tatsuhiro Tsujikawa d8d8a4cff1 2008-07-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added --bt-seed option. If --bt-seed=true is given at the 
command-line,
	aria2 seeds previously downloaded files without validating 
piece hashs.
	* src/HelpItemFactory.cc
	* src/OptionHandlerFactory.cc
	* src/RequestGroup.cc
	* src/option_processing.cc
	* src/prefs.cc
	* src/prefs.h
	* src/usage_text.h
2008-07-08 14:18:51 +00:00
Tatsuhiro Tsujikawa c45e044b22 2008-07-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the compile error on Nexenta OS(GNU/Solaris OS).
	Don't define `struct addrinfo' when __sun is defined.
	* src/getaddrinfo.h
2008-07-06 11:16:23 +00:00
Tatsuhiro Tsujikawa cfa808126b 2008-07-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Introduced a2_struct_stat. It is defined as `struct _stati64' if
	__MINGW32__ is defined, because under MinGW32, _stati64 is used 
and its
	second argument is of type `struct _stati64'. Otherwise it is 
defined as
	`struct stat'.
	* src/AbstractDiskWriter.cc
	* src/File.cc
	* src/File.h
	* src/a2io.h
2008-07-06 04:38:54 +00:00
Tatsuhiro Tsujikawa 46f081f1db 2008-07-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the compile error in hurd-i386
	See the original bug report:
	http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=488602
	* src/a2io.h
2008-07-05 15:37:02 +00:00
Tatsuhiro Tsujikawa dbb8cbc88d 2008-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Code cleanup.
	* src/PeerAbstractCommand.cc
	* src/PeerAbstractCommand.h
2008-07-01 13:40:48 +00:00
Tatsuhiro Tsujikawa 888d6ff4dd 2008-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed TransferEncoding.
	* src/DownloadCommand.cc
	* src/DownloadCommand.h
	* src/HttpResponseCommand.cc
2008-07-01 13:30:38 +00:00
Tatsuhiro Tsujikawa 92c66d24ac 2008-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten ChunkedEncoding class as ChunkedDecoder class.
	* src/A2STR.cc
	* src/A2STR.h
	* src/ChunkedDecoder.cc
	* src/ChunkedDecoder.h
	* src/ChunkedEncoding.cc: Removed
	* src/ChunkedEncoding.h: Removed
	* src/DownloadCommand.cc
	* src/DownloadCommand.h
	* src/HttpDownloadCommand.cc
	* src/HttpResponse.cc
	* src/HttpResponse.h
	* src/HttpResponseCommand.cc
	* src/HttpSkipResponseCommand.cc
	* src/HttpSkipResponseCommand.h
	* src/Makefile.am
	* src/TransferEncoding.h: Removed
	* test/ChunkedDecoderTest.cc
	* test/ChunkedEncodingTest.cc: Removed
	* test/HttpResponseTest.cc
	* test/Makefile.am
2008-07-01 11:38:25 +00:00
Tatsuhiro Tsujikawa 61bb4bc02e 2008-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use append instead of insert.
	* src/GZipDecoder.cc
2008-07-01 11:33:06 +00:00