Commit Graph

714 Commits

Author SHA1 Message Date
Tatsuhiro Tsujikawa
df9d042d25 2008-08-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Clear table item.
	* src/Dictionary.cc
2008-08-23 15:09:29 +00:00
Tatsuhiro Tsujikawa
8503419ae3 2008-08-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed error handling of lseek.
	* src/AbstractDiskWriter.cc
2008-08-23 14:59:04 +00:00
Tatsuhiro Tsujikawa
7e8565f82e 2008-08-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed "(1.x/2.x)" from TEXT_LOAD_COOKIES since aria2 can load 
Firefox3
	style cookie file.
	* src/usage_text.h
2008-08-17 14:13:04 +00:00
Tatsuhiro Tsujikawa
0e6c0498a3 2008-08-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
If a cookie whose expire date is later than 2038-01-19 03:14:07 
GMT is
	sent from server, its expire date is assumed to 2038-01-19 
03:14:07 GMT.
	If Util::httpGMT is failed, then Cookie::onetime is set to true.
	* src/Util.cc
	* src/Util.h
	* src/CookieParser.cc
	* test/UtilTest.cc
	* test/CookieParserTest.cc
2008-08-17 14:09:03 +00:00
Tatsuhiro Tsujikawa
adfcf57e32 2008-08-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Seprate the implementation to load old mozilla format of cookie 
to
	NsCookieParser class.
	* src/CookieBoxFactory.cc
	* src/CookieBoxFactory.h
	* src/NsCookieParser.cc
	* src/NsCookieParser.h
	* test/NsCookieParserTest.cc
2008-08-17 12:58:56 +00:00
Tatsuhiro Tsujikawa
aabb6bb2d9 2008-08-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made parse() const
	* src/Sqlite3MozCookieParser.cc
	* src/Sqlite3MozCookieParser.h
2008-08-17 12:56:23 +00:00
Tatsuhiro Tsujikawa
0cac0dabde 2008-08-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added firefox3 cookie support based on the patch submitted by
	tizianomueller.
	firefox3 cookie is SQLite3 database. libsqlite3 is required to 
enable
	this functionality.
	* configure.ac
	* m4/sqlite3.m4
	* src/CookieBoxFactory.cc
	* src/CookieBoxFactory.h
	* src/Makefile.am
	* src/Makefile.in
	* src/Sqlite3MozCookieParser.cc
	* src/Sqlite3MozCookieParser.h
	* src/main.cc
	* test/CookieBoxFactoryTest.cc
	* test/Makefile.am
	* test/Makefile.in
	* test/Sqlite3MozCookieParserTest.cc
	* test/badcookies.sqlite
	* test/cookies.sqlite
2008-08-17 10:44:12 +00:00
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