Commit Graph

759 Commits (d9668e2c23bacaf8494c77f64a9e6330a50799dd)

Author SHA1 Message Date
Tatsuhiro Tsujikawa 7235f2657f 2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/HttpHeader.cc (get): Rewritten.
2008-05-18 10:40:23 +00:00
Tatsuhiro Tsujikawa e1c1c010b8 2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Make HttpHeader::getFirst(...) return const reference.
	* src/HttpHeader.cc
	* src/HttpHeader.h
2008-05-18 10:33:06 +00:00
Tatsuhiro Tsujikawa a0f8685de3 2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use Option::getAsBool(...) instead of Option::get(...) and 
compare
	it with V_TRUE.
	* src/DefaultPieceStorage.cc
	* src/DownloadCommand.cc
	* src/FtpNegotiationCommand.cc
	* src/HttpRequest.cc
	* src/InitiateConnectionCommand.cc
	* src/RequestGroup.cc
2008-05-18 10:25:41 +00:00
Tatsuhiro Tsujikawa 0a95211100 2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made Option::get(...) return const reference of std::string.
	* src/Option.cc
	* src/Option.h
2008-05-18 10:14:53 +00:00
Tatsuhiro Tsujikawa e4b0446c61 2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Replaced std:copy with insert.
	* src/DefaultBtMessageDispatcher.cc
	* src/DefaultPieceStorage.cc
	* src/DownloadEngineFactory.cc
	* src/RequestGroup.cc
2008-05-18 10:07:42 +00:00
Tatsuhiro Tsujikawa 111edd2c56 2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Included SocketCore.h to fix compiler warning.
	* src/InitiateConnectionCommand.cc
2008-05-17 13:26:25 +00:00
Tatsuhiro Tsujikawa ef02915d82 2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Put piece selection strategy algorithm to RarestPieceSelector 
class,
	Added a switch to choose whether randomized selection so that 
unit
	tests emit same results in, possibly, win32.
	* src/DefaultPieceStorage.cc
	* src/DefaultPieceStorage.h
	* src/RarestPieceSelector.cc
	* src/RarestPieceSelector.h
	* test/DefaultPieceStorageTest.cc
	* test/RarestPieceSelectorTest.cc
2008-05-17 12:51:54 +00:00
Tatsuhiro Tsujikawa 77d892d7f2 2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Don't pool connection if HTTP proxy is enabled.
	* src/FtpFinishDownloadCommand.cc
	* src/FtpNegotiationCommand.cc
	* src/HttpSkipResponseCommand.cc
2008-05-17 09:26:47 +00:00
Tatsuhiro Tsujikawa 7c6ed037e3 2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Don't add closed socket to 
DownloadEngine::addSocketForReadCheck()
	* src/AbstractCommand.cc
	* src/AbstractCommand.h
	* src/ActivePeerConnectionCommand.cc
	* src/FtpInitiateConnectionCommand.cc
	* src/HttpInitiateConnectionCommand.cc
	* src/InitiateConnectionCommandFactory.cc
	* src/PeerAbstractCommand.cc
	* src/PeerAbstractCommand.h
	* src/PeerInitiateConnectionCommand.cc
	* src/TrackerWatcherCommand.cc
2008-05-17 09:15:14 +00:00
Tatsuhiro Tsujikawa b5f1ca6f66 2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Sort RequestSlot in ascending order and manipulate them using
	lower_bound.
	* src/DefaultBtMessageDispatcher.cc
	* src/DefaultBtMessageDispatcher.h
	(getMessageQueue): Added const qualifier.
	(getRequestSlots): Added const qualifier.
	(sendMessages): Use empty() instead of size().
	(doCancelSendingPieceAction): Use HandleEvent object.
	(doAbortOutstandingRequestAction): Rewritten.
	(doChokedAction): Rewritten.
	(checkRequestSlotAndDoNecessaryThing): Rewritten.
	(isOutstandingRequest): Rewritten.
	(getOutstandingRequest): Rewritten.
	(removeOutstandingRequest): Rewritten.
	(addOutstandingRequest): Rewritten.
	* src/RequestSlot.cc
	* src/RequestSlot.h
	(operator=): Rewritten.
	(operator!=): New function.
	(operator<): New function.
2008-05-17 07:31:32 +00:00
Tatsuhiro Tsujikawa e67e998c18 2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/DefaultBtRequestFactory.cc
	(doChokedAction): Rewritten.
	(removeCompletedPiece): Rewritten.
	(removeTargetPiece): Rewritten.
	(createRequestMessages): Added the debug log.
	(createRequestMessagesOnEndGame: Added the debug log.
2008-05-17 07:17:07 +00:00
Tatsuhiro Tsujikawa 9787a7a5b0 2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added the debug log message.
	* src/BtPieceMessage.cc (doReceivedAction)
2008-05-17 07:06:17 +00:00
Tatsuhiro Tsujikawa 4b3e582542 2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Sorted DHTPeerAnnounceEntry in a ascending order of info hash 
and
	used lower_bound to process them rather than linear search.
	* src/DHTPeerAnnounceStorage.cc
2008-05-17 06:10:52 +00:00
Tatsuhiro Tsujikawa 73a2599a04 Fixed date 2008-05-17 05:39:17 +00:00
Tatsuhiro Tsujikawa 7bbd9cec3b 2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Call subtractPieceStats from ~PeerInteractionCommand only when 
the
	peer has at least one completed piece.
	* src/Peer.cc
	* src/Peer.h
	* src/PeerInteractionCommand.cc
	* src/PeerSessionResource.cc
	* src/PeerSessionResource.h
2008-05-17 05:12:14 +00:00
Tatsuhiro Tsujikawa d4d608eeb0 2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed unnecessary sorting
	* src/DefaultPieceStorage (DefaultPieceStorage)
2008-05-17 05:09:10 +00:00
Tatsuhiro Tsujikawa 99f07b515f 2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten the portion of the code that mangaes allowed fast 
indexes.
	* src/PeerSessionResource.cc
	* src/PeerSessionResource.h
2008-05-16 14:51:14 +00:00
Tatsuhiro Tsujikawa 738996932a 2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed the invalid string including '\r' from ru.po and
	did make update-po.
2008-05-15 16:10:25 +00:00
Tatsuhiro Tsujikawa 2c7ae9ebaa 2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added --log-level and --summary-interval to man page.
	* doc/aria2c.1.txt
	* doc/aria2c.1.html
	* doc/aria2c.1
2008-05-15 15:57:04 +00:00
Tatsuhiro Tsujikawa d76e423884 2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added --log-level option to specify log level. Log messages under
	the specified level are not output. Default value is `debug'.
	* src/HelpItemFactory.cc
	* src/LogFactory.cc
	* src/LogFactory.h
	* src/Logger.h
	* src/OptionHandlerFactory.cc
	* src/SimpleLogger.cc
	* src/SimpleLogger.h
	* src/main.cc
	* src/option_processing.cc
	* src/prefs.h
	* src/usage_text.h
2008-05-15 15:48:41 +00:00
Tatsuhiro Tsujikawa 2e8e926c10 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Print download progress summary of all parallel downloads in specified
	interval, default 60 secs. While aria2 could download several files
	in parallel (see -j option), it displayed just first download progress,
	and the other downloads are hidden from the users. This new feature
	prints all downloads currently in-progress to the console so that you
	can check the status of all downloads. The interval can be adjusted
	by --summary-interval option.
	
	The progress readout is now cut so that all fits in the one line of
	console.
	* src/ConsoleStatCalc.cc
	* src/ConsoleStatCalc.h
	* src/HelpItemFactory.cc
	* src/OptionHandlerFactory.cc
	* src/RequestGroupMan.cc
	* src/RequestGroupMan.h
	* src/main.cc
	* src/option_processing.cc
	* src/prefs.h
	* src/usage_text.h
2008-05-15 14:37:02 +00:00
Tatsuhiro Tsujikawa d8e64c764d 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Call updateFdSet() to initialize rfdset, wfdset fdmax.
	* src/DownloadEngine.cc (DownloadEngine)
2008-05-14 16:01:30 +00:00
Tatsuhiro Tsujikawa 148b1baf38 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use free() to deallocate memory for _buffer if 
HAVE_POSIX_MEMALIGN is
	defined.
	* src/SingleFileAllocationIterator.cc 
(~SingleFileAllocationIterator)
2008-05-14 15:51:35 +00:00
Tatsuhiro Tsujikawa 46636201c1 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use erase+lower_bound+insert instead of sort.
	* src/DefaultPieceStorage.cc (addPieceStats)
2008-05-14 15:43:38 +00:00
Tatsuhiro Tsujikawa f2588a882b 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use A2STR::SHARP_C and A2STR::EQUAL_C.
	* src/A2STR.cc
	* src/A2STR.h
	* src/OptionParser.cc (parse)
2008-05-14 15:33:42 +00:00
Tatsuhiro Tsujikawa 35b219ddc8 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined fake filename `[tracker.announce]' as static const 
std::string.
	* src/TrackerWatcherCommand.cc (createRequestGroup)
2008-05-14 15:22:52 +00:00
Tatsuhiro Tsujikawa 237ec10329 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined default filename `index.html' as static const 
std::string
	* src/SingleFileDownloadContext.cc
	* src/SingleFileDownloadContext.h
2008-05-14 15:19:26 +00:00
Tatsuhiro Tsujikawa f26d64ce49 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined "[MEMORY]" as static const std::string.
	* src/MemoryBufferPreDownloadHandler.cc (execute)
2008-05-14 15:15:04 +00:00
Tatsuhiro Tsujikawa 013bf02662 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined control file's version number as static const 
std::string.
	* src/DefaultBtProgressInfoFile.cc
	* src/DefaultBtProgressInfoFile.h
2008-05-14 15:12:17 +00:00
Tatsuhiro Tsujikawa 6d0aff618d 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use Request::METHOD_GET
	* src/RequestGroup.cc (createNextCommandWithAdj)
2008-05-14 15:05:46 +00:00
Tatsuhiro Tsujikawa 630cee3cb7 2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined "OK", "ERR", "INPR" as static const std::string
	* src/RequestGroupMan.cc (showDownloadResults)
2008-05-14 15:03:09 +00:00
Tatsuhiro Tsujikawa 919c6934a8 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined default client used in extended handshake as static 
const
	std::string
	* src/DefaultBtInteractive.cc 
(addHandshakeExtendedMessageToQueue)
2008-05-14 14:57:22 +00:00
Tatsuhiro Tsujikawa 5143a7fed0 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined AUTH_HEADER, PROXY_AUTH_HEADER as static const 
std::string
	* src/HttpConnection.cc (eraseConfidentialInfo)
2008-05-14 14:51:31 +00:00
Tatsuhiro Tsujikawa cded0f5811 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined default ftp user and password as static const 
std::string
	* src/AuthConfigFactory.cc
	* src/AuthConfigFactory.h
2008-05-14 14:40:38 +00:00
Tatsuhiro Tsujikawa 12b880a724 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined strings used in netrc as static const std::string
	* src/Netrc.cc
	* src/Netrc.h
2008-05-14 14:35:52 +00:00
Tatsuhiro Tsujikawa 158563d16a 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined HTTP status as static const std::string
	* src/AbstractProxyResponseCommand.cc
	* src/HttpHeader.cc
	* src/HttpHeader.h
	* src/HttpResponse.cc
	* src/HttpResponseCommand.cc
	* src/HttpSkipResponseCommand.cc
2008-05-14 14:02:18 +00:00
Tatsuhiro Tsujikawa 9a98c71972 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined "\r\n", "A", "I" as static const std::string
	* src/A2STR.cc
	* src/A2STR.h
	* src/FtpConnection.cc
	* src/FtpConnection.h
2008-05-14 13:52:47 +00:00
Tatsuhiro Tsujikawa 30a378aa57 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added COLON_C(".") and used it in Request::parseUrl()
	* src/A2STR.cc
	* src/A2STR.h
	* src/Request.cc (parseUrl)
2008-05-14 13:25:42 +00:00
Tatsuhiro Tsujikawa 309ad8c5ef 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed the type of padName from `const std::string&' to `const 
char*'.
	* src/MSEHandshake.cc (verifyPadLength)
2008-05-14 13:14:04 +00:00
Tatsuhiro Tsujikawa 0eb5ca187f 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined "sha1" as static const std::string.
	* src/MetalinkParserController.cc
	* src/MetalinkParserController.h
2008-05-14 13:07:04 +00:00
Tatsuhiro Tsujikawa 9bd1fc10af 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined message digest algorithm name as static const 
std::string
	* src/DHTTokenTracker.cc
	* src/DHTUtil.cc
	* src/DefaultBtContext.cc
	* src/MSEHandshake.cc
	* src/MessageDigestHelper.cc
	* src/Peer.cc
	* src/messageDigest.cc
	* src/messageDigest.h
2008-05-14 13:02:43 +00:00
Tatsuhiro Tsujikawa 48c96ac441 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made string literals used in SAX parser static const 
std::string.
	* src/FileMetalinkParserState.cc
	* src/FileMetalinkParserState.h
	* src/FilesMetalinkParserState.cc
	* src/FilesMetalinkParserState.h
	* src/InitialMetalinkParserState.cc
	* src/InitialMetalinkParserState.h
	* src/MetalinkMetalinkParserState.cc
	* src/MetalinkMetalinkParserState.h
	* src/PiecesMetalinkParserState.cc
	* src/PiecesMetalinkParserState.h
	* src/ResourcesMetalinkParserState.cc
	* src/ResourcesMetalinkParserState.h
	* src/VerificationMetalinkParserState.cc
	* src/VerificationMetalinkParserState.h
2008-05-14 12:51:05 +00:00
Tatsuhiro Tsujikawa 1b874503cf 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use A2STR::SLASH_C, A2STR::DOT_C instead of "/", "." 
respectively.
	* src/A2STR.cc
	* src/A2STR.h
	* src/File.cc
2008-05-14 12:28:46 +00:00
Tatsuhiro Tsujikawa 1aeefb5c4b 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Defined static const std::string IP("ip"), PORT("port") and use 
them
	instead of string literals.
	* src/DefaultPeerListProcessor.cc
	* src/DefaultPeerListProcessor.h
2008-05-14 12:15:39 +00:00
Tatsuhiro Tsujikawa 9d24736208 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made string literals for torrent file processing static const
	std::string.
	* src/BtContext.cc
	* src/BtContext.h
	* src/DefaultBtContext.cc
	* src/DefaultBtContext.h
2008-05-14 12:11:04 +00:00
Tatsuhiro Tsujikawa cb795bc989 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made string literal for tracker response static const 
std::string
	* src/BtAnnounce.cc
	* src/BtAnnounce.h
	* src/DefaultBtAnnounce.cc
2008-05-14 11:47:15 +00:00
Tatsuhiro Tsujikawa 412429dfe6 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use DHTMessage::T instead of "t".
	* src/DHTMessageTracker.cc (messageArrived)
2008-05-14 11:31:53 +00:00
Tatsuhiro Tsujikawa 87984328c5 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made keyName static const. Made trimmed charset static const
	std::string.
	* src/Util.cc (getContentDispositionFilename)
2008-05-13 17:05:02 +00:00
Tatsuhiro Tsujikawa 29d5651cd5 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made USER_AGENT const. Made "/" static const std::string.
	* src/A2STR.cc
	* src/A2STR.h
	* src/HttpRequest.cc
	* src/HttpRequest.h
2008-05-13 16:58:40 +00:00
Tatsuhiro Tsujikawa 0c821d0ad7 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made string listeral to static const std::string:
	"Content-Range", "Content-Length"
	* src/HttpHeader.cc
	* src/HttpHeader.h
2008-05-13 16:44:21 +00:00
Tatsuhiro Tsujikawa 00f385c3b3 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made string listeral to static const std::string.
	* src/HttpConnection.cc
	* src/HttpHeader.cc
	* src/HttpHeader.h
	* src/HttpResponse.cc
2008-05-13 16:40:34 +00:00
Tatsuhiro Tsujikawa a37af74369 2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made string listeral to static const std::string.
	* src/A2STR.cc
	* src/A2STR.h
	* src/SimpleLogger.cc
	* src/SimpleLogger.h
2008-05-13 16:28:31 +00:00
Tatsuhiro Tsujikawa 1942b8d7b3 2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made string literal to static const std::string.
	Rewritten CookieParser::setField.
	* src/A2STR.cc
	* src/A2STR.h
	* src/CookieBoxFactory.cc
	* src/CookieBoxFactory.h
	* src/CookieParser.cc
	* src/CookieParser.h
2008-05-13 16:13:55 +00:00
Tatsuhiro Tsujikawa 898b807ba2 2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made string literal to static const std::string
	* src/DHTAbstractMessage.cc
	* src/DHTAnnouncePeerMessage.cc
	* src/DHTAnnouncePeerMessage.h
	* src/DHTAnnouncePeerReplyMessage.cc
	* src/DHTAnnouncePeerReplyMessage.h
	* src/DHTFindNodeMessage.cc
	* src/DHTFindNodeMessage.h
	* src/DHTFindNodeReplyMessage.cc
	* src/DHTFindNodeReplyMessage.h
	* src/DHTGetPeersMessage.cc
	* src/DHTGetPeersMessage.h
	* src/DHTGetPeersReplyMessage.cc
	* src/DHTGetPeersReplyMessage.h
	* src/DHTMessage.cc
	* src/DHTMessage.h
	* src/DHTMessageFactoryImpl.cc
	* src/DHTMessageReceiver.cc
	* src/DHTPingMessage.cc
	* src/DHTPingMessage.h
	* src/DHTPingReplyMessage.cc
	* src/DHTPingReplyMessage.h
	* src/DHTQueryMessage.cc
	* src/DHTQueryMessage.h
	* src/DHTResponseMessage.cc
	* src/DHTResponseMessage.h
	* src/DHTUnknownMessage.cc
	* src/DHTUnknownMessage.h
2008-05-13 15:55:05 +00:00
Tatsuhiro Tsujikawa 5c8db1cc20 2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made string literal to static const std::string
	* src/BtChokeMessage.cc (toString)
	* src/BtHaveAllMessage.cc (toString)
	* src/BtHaveNoneMessage.cc (toString)
	* src/BtInterestedMessage.cc (toString)
	* src/BtNotInterestedMessage.cc (toString)
	* src/BtUnchokeMessage.cc (toString)
2008-05-13 14:25:27 +00:00
Tatsuhiro Tsujikawa 386d19693b 2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Replaced "" with static const variable A2STR::NIL.
	Replaced string comparison against "" with std::string::empty().
	Added PROTO_* to Request class and use them as a protocol string
	constant.
	Made "started", "stopped", "completed" static const variable in
	AnnounceList class.
2008-05-13 14:15:23 +00:00
Tatsuhiro Tsujikawa 9d03f0d2f7 2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated translations. Great thanks to translators.
	* po/ca.po
	* po/de.po
	* po/fr.po
	* po/it.po
	* po/ja.po
	* po/ru.po
	* po/zh_CN.po
2008-05-12 15:39:52 +00:00
Tatsuhiro Tsujikawa 915562f1b2 2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated man page; categorized options and fixed typo.
	* doc/aria2c.1.txt
	* doc/aria2c.1.html
	* doc/aria2c.1
2008-05-12 15:26:43 +00:00
Tatsuhiro Tsujikawa 3c8918cfe0 2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed const ref
	* src/MetalinkEntry.cc (AddProtocolPreference)
	* src/RequestGroup.cc (FindServerHostByHostname)
2008-05-12 14:10:14 +00:00
Tatsuhiro Tsujikawa 7ea0e831d4 2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten Accept-Features handling.
	* src/HttpRequestCommand.cc (createHttpRequest)
	* src/a2functional.h
2008-05-12 14:08:43 +00:00
Tatsuhiro Tsujikawa fac64b9e07 2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten Accept-Features handling.
	* src/HttpRequestCommand.cc (createHttpRequest)
2008-05-12 14:07:54 +00:00
Tatsuhiro Tsujikawa c1ba19efe2 2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	DHTAbstractNodeLookupTask::toEntries
	* src/DHTAbstractNodeLookupTask.cc
	* src/DHTAbstractNodeLookupTask.h
2008-05-12 12:26:45 +00:00
Tatsuhiro Tsujikawa 41b6003cbd 2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	BtContext::computeFastSet, DefaultBtContext::extractUrlList
	* src/BtContext.h
	* src/DefaultBtContext.cc
	* src/DefaultBtContext.h
	* src/DefaultBtInteractive.cc
	* test/DefaultBtContextTest.cc
	* test/MockBtContext.h
2008-05-12 12:18:21 +00:00
Tatsuhiro Tsujikawa 6ae07106d3 2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	MultiFileAllocationIterator::makeDiskWriterEntries
	* src/MultiFileAllocationIterator.cc
	* src/MultiFileAllocationIterator.h
2008-05-12 11:51:09 +00:00
Tatsuhiro Tsujikawa 3da60af41e 2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method sinature:
	MetalinkEntry::toFileEntry,
	MetalinkHelper::query, MetalinkHelper::parseAndQuery,
	Metalinker::queryEntry
	* src/Metalink2RequestGroup.cc
	* src/MetalinkEntry.cc
	* src/MetalinkEntry.h
	* src/MetalinkHelper.cc
	* src/MetalinkHelper.h
	* src/Metalinker.cc
	* src/Metalinker.h
	* src/main.cc
	* test/MetalinkHelperTest.cc
	* test/MetalinkerTest.cc
2008-05-12 11:39:34 +00:00
Tatsuhiro Tsujikawa f84eac327f 2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method sinature:
	RequestGroup::getURIs
	* src/RequestGroup.cc
	* src/RequestGroup.h
	* test/Metalink2RequestGroupTest.cc
2008-05-12 11:15:17 +00:00
Tatsuhiro Tsujikawa 5f8e8e371e 2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	PeerListProcessor::extractPeer
	* src/CompactPeerListProcessor.cc
	* src/CompactPeerListProcessor.h
	* src/DefaultBtAnnounce.cc
	* src/DefaultPeerListProcessor.cc
	* src/DefaultPeerListProcessor.h
	* src/DelegatingPeerListProcessor.cc
	* src/DelegatingPeerListProcessor.h
	* src/PeerListProcessor.h
	* src/UTPexExtensionMessage.cc
	* test/DefaultPeerListProcessorTest.cc
2008-05-12 11:05:21 +00:00
Tatsuhiro Tsujikawa ddd1206b42 2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	BtRequestFactory::createRequestMessages,
	BtRequestFactory::createRequestMessagesOnEndGame
	* src/BtRequestFactory.h
	* src/DefaultBtInteractive.cc
	* src/DefaultBtRequestFactory.cc
	* src/DefaultBtRequestFactory.h
	* test/DefaultBtRequestFactoryTest.cc
	* test/MockBtRequestFactory.h
2008-05-12 10:54:36 +00:00
Tatsuhiro Tsujikawa d2110dc697 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	PieceStorage::getInFlightPieces
	* src/DefaultBtProgressInfoFile.cc
	* src/DefaultPieceStorage.cc
	* src/DefaultPieceStorage.h
	* src/PieceStorage.h
	* src/UnknownLengthPieceStorage.cc
	* src/UnknownLengthPieceStorage.h
	* test/DefaultBtProgressInfoFileTest.cc
	* test/MockPieceStorage.h
2008-05-11 14:42:34 +00:00
Tatsuhiro Tsujikawa b96eb7fd79 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	PostDownloadHandler::getNextRequestGroups
	Metalink2RequestGroup::generate
	RequestGroup::postDownloadProcessing
	* src/BtPostDownloadHandler.cc
	* src/BtPostDownloadHandler.h
	* src/Metalink2RequestGroup.cc
	* src/Metalink2RequestGroup.h
	* src/MetalinkPostDownloadHandler.cc
	* src/MetalinkPostDownloadHandler.h
	* src/PostDownloadHandler.h
	* src/RequestGroup.cc
	* src/RequestGroup.h
	* src/RequestGroupMan.cc
	* src/main.cc
	* test/BtPostDownloadHandlerTest.cc
	* test/Metalink2RequestGroupTest.cc
	* test/MetalinkPostDownloadHandlerTest.cc
2008-05-11 13:59:27 +00:00
Tatsuhiro Tsujikawa 3884d710d3 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten AccRequestGroup
	* src/main.cc
2008-05-11 13:31:30 +00:00
Tatsuhiro Tsujikawa b22e86a6eb 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten.
	* src/TaggedItem.cc (toTagString)
2008-05-11 13:19:20 +00:00
Tatsuhiro Tsujikawa 4e3c08d50c 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten Accept-Features handling.
	* src/HttpRequestCommand.cc (createHttpRequest)
2008-05-11 13:14:41 +00:00
Tatsuhiro Tsujikawa 1f931b33bd 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten accept types handling.
	* HttpRequest.cc (createRequest)
2008-05-11 13:07:26 +00:00
Tatsuhiro Tsujikawa 9fd38f12b7 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten
	* src/FeatureConfig.cc (featureSummary)
2008-05-11 13:03:24 +00:00
Tatsuhiro Tsujikawa 05f0646112 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	PeerStorage::getActivePeers
	* src/DHTPeerAnnounceEntry.cc
	* src/DefaultPeerStorage.cc
	* src/DefaultPeerStorage.h
	* src/PeerStorage.h
	* test/DefaultPeerStorageTest.cc
	* test/MockPeerStorage.h
2008-05-11 12:58:48 +00:00
Tatsuhiro Tsujikawa 33e916547a 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	DHTPeerAnnounceStorage::getPeers,
	DHTPeerAnnounceEntry::getPeers
	* src/DHTGetPeersMessage.cc
	* src/DHTPeerAnnounceEntry.cc
	* src/DHTPeerAnnounceEntry.h
	* src/DHTPeerAnnounceStorage.cc
	* src/DHTPeerAnnounceStorage.h
	* test/DHTAnnouncePeerMessageTest.cc
	* test/DHTPeerAnnounceEntryTest.cc
	* test/DHTPeerAnnounceStorageTest.cc
2008-05-11 12:14:14 +00:00
Tatsuhiro Tsujikawa 5e99846776 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	NameResolver::resolve
	* src/DHTEntryPointNameResolveCommand.cc
	* src/InitiateConnectionCommand.cc
	* src/NameResolver.cc
	* src/NameResolver.h
2008-05-11 11:59:56 +00:00
Tatsuhiro Tsujikawa 7ec7b7ea60 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	PieceStorage::getAdvertisedPieceIndexes
	* src/DefaultBtInteractive.cc
	* src/DefaultPieceStorage.cc
	* src/DefaultPieceStorage.h
	* src/PieceStorage.h
	* src/UnknownLengthPieceStorage.h
	* test/MockPieceStorage.h
2008-05-11 10:57:18 +00:00
Tatsuhiro Tsujikawa 82e0092b19 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	SegmentMan::getInFlightSegment
	* src/AbstractCommand.cc
	* src/SegmentMan.cc
	* src/SegmentMan.h
	* test/SegmentManTest.cc
2008-05-11 10:46:52 +00:00
Tatsuhiro Tsujikawa 83731bab5c 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	DHTAbstractNodeLookupTask::getNodesFromMessage
	* src/DHTAbstractNodeLookupTask.cc
	* src/DHTAbstractNodeLookupTask.h
	* src/DHTNodeLookupTask.cc
	* src/DHTNodeLookupTask.h
	* src/DHTPeerLookupTask.cc
	* src/DHTPeerLookupTask.h
2008-05-11 09:53:11 +00:00
Tatsuhiro Tsujikawa 825cfe7715 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Pass std::deque<Command*> by reference to avoid unnecessary coping.
	* src/AbstractCommand.cc
	* src/BtCheckIntegrityEntry.cc
	* src/BtCheckIntegrityEntry.h
	* src/BtFileAllocationEntry.cc
	* src/BtFileAllocationEntry.h
	* src/BtSetup.cc
	* src/BtSetup.h
	* src/CheckIntegrityCommand.cc
	* src/CheckIntegrityEntry.h
	* src/ChecksumCheckIntegrityEntry.cc
	* src/ChecksumCheckIntegrityEntry.h
	* src/DHTSetup.cc
	* src/DHTSetup.h
	* src/DownloadEngine.cc
	* src/FileAllocationCommand.cc
	* src/FileAllocationEntry.h
	* src/RequestGroup.cc
	* src/RequestGroup.h
	* src/RequestGroupMan.cc
	* src/RequestGroupMan.h
	* src/StreamCheckIntegrityEntry.cc
	* src/StreamCheckIntegrityEntry.h
	* src/StreamFileAllocationEntry.cc
	* src/StreamFileAllocationEntry.h
	* src/TrackerWatcherCommand.cc
	* src/a2functional.h
2008-05-11 09:36:39 +00:00
Tatsuhiro Tsujikawa 6d78a7656d 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
	BNode::findClosestKNodes, BNode:: enumerateBucket,
	DHTBucket::getGoodNodes,
	DHTRoutingTable::getClosestKNodes, DHTRoutingTable::getBuckets
	* src/BNode.cc
	* src/BNode.h
	* src/DHTAbstractNodeLookupTask.cc
	* src/DHTAutoSaveCommand.cc
	* src/DHTBucket.cc
	* src/DHTBucket.h
	* src/DHTBucketRefreshTask.cc
	* src/DHTFindNodeMessage.cc
	* src/DHTGetPeersMessage.cc
	* src/DHTRoutingTable.cc
	* src/DHTRoutingTable.h
	* test/BNodeTest.cc
	* test/DHTBucketTest.cc
	* test/DHTRoutingTableTest.cc
2008-05-11 08:07:57 +00:00
Tatsuhiro Tsujikawa bf5a8c3f78 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
In piece selection functions, Pass std::deque<...> by reference 
rather
	than returning it.
	* src/BitfieldMan.cc
	* src/BitfieldMan.h
	* src/DefaultBtRequestFactory.cc
	* src/DefaultPieceStorage.cc
	* src/Piece.cc
	* src/Piece.h
	* test/BitfieldManTest.cc
2008-05-11 07:37:46 +00:00
Tatsuhiro Tsujikawa a702d60666 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Implemented rarest piece first piece selection strategy.
	* src/AbstractBtMessage.cc
	* src/AbstractBtMessage.h
	* src/BitfieldMan.cc
	* src/BitfieldMan.h
	* src/BtBitfieldMessage.cc
	* src/BtHaveAllMessage.cc
	* src/BtHaveMessage.cc
	* src/DefaultPieceStorage.cc
	* src/DefaultPieceStorage.h
	* src/PeerInteractionCommand.cc
	* src/PieceStorage.h
	* src/UnknownLengthPieceStorage.h
2008-05-11 01:22:32 +00:00
Tatsuhiro Tsujikawa f69625775c 2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten readData and writeData.
	* src/MultiDiskAdaptor.cc
	* src/MultiDiskAdaptor.h
2008-05-11 01:13:22 +00:00
Tatsuhiro Tsujikawa ebf0fbc591 2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Move \n out of the message "Usage: ...".
	* src/version_usage.cc
2008-05-10 07:14:26 +00:00
Tatsuhiro Tsujikawa a2c91b5831 2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Bump up version number to 0.13.2b.
	* configure.ac
2008-05-10 05:47:06 +00:00
Tatsuhiro Tsujikawa a780fcacc4 2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added const qualifier to argument Exception& e.
	* src/Logger.h
	* src/SimpleLogger.cc
	* src/SimpleLogger.h
2008-05-10 05:16:16 +00:00
Tatsuhiro Tsujikawa e71b09a9dc 2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Pool connection when CWD, SIZE command fails.
	* src/FtpNegotiationCommand.cc
	* src/FtpNegotiationCommand.h
2008-05-10 05:14:35 +00:00
Tatsuhiro Tsujikawa 10b1ddd2c0 2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Renamed HttpNullDownloadCommand as HttpSkipResponseCommand
	* src/HttpResponseCommand.cc
	* src/HttpSkipResponseCommand.cc
	* src/HttpSkipResponseCommand.h
2008-05-10 04:57:33 +00:00
Tatsuhiro Tsujikawa 03db925988 2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Pool connection when a server returns 4xx, 5xx responses.
	* src/HttpNullDownloadCommand.cc
	* src/HttpNullDownloadCommand.h
	* src/HttpResponse.cc
	* src/HttpResponse.h
	* src/HttpResponseCommand.cc
	* src/HttpResponseCommand.h
	* test/HttpResponseTest.cc
2008-05-10 04:50:49 +00:00
Tatsuhiro Tsujikawa d13b198ddd 2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Print usage when no URL is specifed or bad command-line option is
	specified.
	* src/HelpItemFactory.cc
	* src/help_tags.h
	* src/option_processing.cc
2008-05-10 02:35:42 +00:00
Tatsuhiro Tsujikawa 02b1062607 2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed duplicate log message.
	* src/AbstractCommand.cc (asyncResolveHostname)
2008-05-10 02:33:15 +00:00
Tatsuhiro Tsujikawa 698d2889ca 2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated man page: --async-dns and --ftp-reuse-connection were 
added.
	Changed -j option's default value from 5 to 1.
	Added new examples using protocol auto detection feature.
	Removed -T, -M usage where it can be omitted.
	* doc/aria2c.1.txt
	* doc/aria2c.1.html
	* doc/aria2c.1.txt
2008-05-09 15:34:43 +00:00
Tatsuhiro Tsujikawa 7956dab9c3 2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated command-line usage text, so that it tells users that 
they
	can specify any number of torrent files and metalink files in
	command-line.
	* src/version_usage.cc
2008-05-09 15:30:09 +00:00
Tatsuhiro Tsujikawa 5bed29e79a 2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed the default value of -j option to 1.
	* src/HelpItemFactory.cc
	* src/option_processing.cc
	* src/usage_text.h
2008-05-09 14:52:25 +00:00
Tatsuhiro Tsujikawa f25436725e 2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
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
2008-05-09 14:44:28 +00:00
Tatsuhiro Tsujikawa 0b5e827ead 2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Call Command::transitStatus() before calling Command::execute(),
	so that the status change made in execute() is not cleared.
	* src/DownloadEngine.cc
2008-05-09 14:36:06 +00:00
Tatsuhiro Tsujikawa 95e0fbfd7b 2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed forward declaration of SocketCore class.
	* src/HttpDownloadCommand.h
2008-05-09 14:34:27 +00:00
Tatsuhiro Tsujikawa c3c05e9ab1 2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Set Request::setKeepAliveHint() and Request::setPipeliningHint()
	in InitiateConnectionCommandFactory. They should be set only 
when
	the protocol is HTTP or HTTPS.
	* src/InitiateConnectionCommandFactory.cc
	* src/RequestGroup.cc
2008-05-09 14:28:46 +00:00
Tatsuhiro Tsujikawa b1d51f2442 2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed infinite loop in checksum checking.
	* src/IteratableChecksumValidator.cc
2008-05-09 14:25:32 +00:00
Tatsuhiro Tsujikawa 5ea933fed1 2008-05-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Set _supportsPersistentConnection to true by default.
	* src/Request.cc
	* src/RequestGroup.cc
	* test/HttpRequestTest.cc
	* test/RequestTest.cc
2008-05-08 13:20:15 +00:00
Tatsuhiro Tsujikawa 2c54667beb 2008-05-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added timeout to socket pool. The default timeout is 15 seconds,
	which is the same value Apache uses.
	* src/DownloadEngine.cc
	* src/DownloadEngine.h
2008-05-08 13:18:25 +00:00
Tatsuhiro Tsujikawa d52bce74d3 2008-05-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten name resolver. Now async DNS can be disabled by 
--async-dns
	option.
	The asynchronous DNS is not capable of IPv6 yet.
	By disabling asynchronous DNS, aria2 is IPv6 enabled 
application, at
	least for HTTP download.
	* src/AbstractCommand.cc
	* src/AbstractCommand.h
	* src/AsyncNameResolver.cc
	* src/AsyncNameResolver.h
	* src/DHTEntryPointNameResolveCommand.cc
	* src/DHTEntryPointNameResolveCommand.h
	* src/DownloadEngine.cc
	* src/DownloadEngine.h
	* src/FtpInitiateConnectionCommand.cc
	* src/FtpInitiateConnectionCommand.h
	* src/HelpItemFactory.cc
	* src/HttpInitiateConnectionCommand.cc
	* src/HttpInitiateConnectionCommand.h
	* src/InitiateConnectionCommand.cc
	* src/InitiateConnectionCommand.h
	* src/Makefile.am
	* src/Makefile.in
	* src/NameResolver.cc
	* src/NameResolver.h
	* src/OptionHandlerFactory.cc
	* src/SocketCore.cc
	* src/SocketCore.h
	* src/Util.cc
	* src/Util.h
	* src/option_processing.cc
	* src/prefs.h
	* src/usage_text.h
2008-05-08 11:18:36 +00:00
Tatsuhiro Tsujikawa d8f911b581 2008-05-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated man page: --quiet, --header were added.
	--metalink-servers and --enable-http-keep-alive option were 
updated.
	* doc/aria2c.1
	* doc/aria2c.1.html
	* doc/aria2c.1.txt
2008-05-06 15:43:26 +00:00
Tatsuhiro Tsujikawa 620de10443 Removed following wrong entry:
2008-05-05  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>

	Enabled --enable-http-keep-alive by default.
	* src/option_processing.cc
2008-05-06 15:28:14 +00:00
Tatsuhiro Tsujikawa ac1b573e59 2008-05-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Enable HTTP keep-alive by default.
	* src/HelpItemFactory.cc
	* src/option_processing.cc
	* src/usage_text.h
2008-05-06 15:26:43 +00:00
Tatsuhiro Tsujikawa e88eedc8f5 2008-05-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Disable http keep-alive if the remote server is not HTTP/1.1.
	* src/HttpConnection.cc
2008-05-06 15:22:46 +00:00
Tatsuhiro Tsujikawa 4f150057ca 2008-05-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Receive content body of 302 response so that the connection can 
be
	reused later when http keep-alive is enabled.
	* src/HttpNullDownloadCommand.cc
	* src/HttpNullDownloadCommand.h
	* src/HttpResponseCommand.cc
	* src/HttpResponseCommand.h
2008-05-06 15:20:59 +00:00
Tatsuhiro Tsujikawa 53464fd0fc 2008-05-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
const SharedHandle<Request> -> const SharedHandle<Request>&
	* src/FtpDowndloadCommand.cc
	* src/FtpDowndloadCommand.h
	* src/HttpDownloadCommand.cc
	* src/HttpDownloadCommand.h
2008-05-06 15:14:14 +00:00
Tatsuhiro Tsujikawa 874714609f 2008-05-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that the control file(.aria2 file) is not renamed
	according to tryAutoFileRenaming().
	tryAutoFileRenaming() was rewritten so that if both renamed file 
and
	its control file exist, use them and continue download.
	The old implementation didn't take into account of control 
file's
	existence, so basically you couldn't continue download of 
renamed file.
	* src/BtProgressInfoFile.h
	* src/DefaultBtProgressInfoFile.cc
	* src/DefaultBtProgressInfoFile.h
	* src/NullProgressInfoFile.h
	* src/RequestGroup.cc
	* test/DefaultBtProgressInfoFileTest.cc
	* test/MockBtProgressInfoFile.h
2008-05-05 10:10:15 +00:00
Tatsuhiro Tsujikawa 6952eef7b6 2008-05-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Change the default value of --metalink-servers option from `5' 
to `1'.
	* src/HelpItemFactory.cc
	* src/option_processing.cc
	* src/usage_text.h
2008-05-05 08:32:40 +00:00
Tatsuhiro Tsujikawa f596de9eec 2008-05-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Reimplemented transparent metalink using Accept request header.
	* src/HttpRequest.cc
	* src/HttpRequest.h
	* src/HttpRequestCommand.cc
	* src/Metalink2RequestGroup.cc
	* src/RequestGroup.cc
	* src/RequestGroup.h
	* test/HttpRequestTest.cc
2008-05-05 08:25:41 +00:00
Tatsuhiro Tsujikawa b892b54e4b 2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Bump up version number to 0.13.2a
	* configure.ac
2008-04-27 10:50:24 +00:00
Tatsuhiro Tsujikawa 63d7b5039f 2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated configure.ac using the result of autoscan.
	* configure.ac
2008-04-27 10:47:43 +00:00
Tatsuhiro Tsujikawa 0f64c20da8 2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compilation error without gcrypt/openssl.
	* src/DownloadCommand.cc
	* src/DownloadCommand.h
2008-04-27 06:01:34 +00:00
Tatsuhiro Tsujikawa b74e27ff92 2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Reorganized version information so that it can be displayed in a
	standard terminal screen without scrolling.
	Removed http, ftp from Configuration section, because they are 
always
	enabled.
	* src/FeatureConfig.cc
	* src/FeatureConfig.h
	* src/main.cc
	* src/messageDigest.cc
	* src/messageDigest.h
	* src/version_usage.cc
	* test/FeatureConfigTest.cc
2008-04-27 05:55:02 +00:00
Tatsuhiro Tsujikawa 3938307391 2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Masked user ID in log.
	* src/FtpConnection.cc (sendUser)
2008-04-27 04:12:00 +00:00
Tatsuhiro Tsujikawa 4663902500 2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed query part from filename in HTTP download. The query part means
	the substring after "?" in URL. Firefox seems do the same thing.
	A query part is sometimes very long and not suitable to filename,
	so I think it is better to remove it from filename.
	* src/HttpRequest.cc
	* src/HttpRequest.h
	* src/Request.cc
	* src/Request.h
	* test/HttpRequestTest.cc
	* test/RequestTest.cc
2008-04-27 04:09:08 +00:00
Tatsuhiro Tsujikawa 1ef99931e1 2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten Exception class. Throw exception object, not its pointer and
	catch by reference, so that remove problematic delete operator for
	catched exception.
	* src/Exception.cc
	* src/Exception.h
	* test/ExceptionTest.cc
	* src/*: All files throwing/catching exception.
	* test/*: All files throwing/catching exception.
2008-04-27 02:22:14 +00:00
Tatsuhiro Tsujikawa a7952cce05 2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Now auto protocol detection is enabled without -Z option.
	But there is a important difference between with/without -Z optoin.

	For example, if you type:
	aria2c http://host/file file1.torrent file2.metalink http://mirror/file
	then, aria2 interprets there are 3 request groups:
	(1) http://host/file, http://mirror/file  <-- multi-source download
	(2) file1.torrent
	(3) file2.metalink

	On the other hand, if you invoke above command with -Z option, it is
	interpreted as 4 request groups:
	(1) http://host/file
	(2) file1.torrent
	(3) file2.metalink
	(4) http://mirror/file

	I think usually user don't mix multi-source URLs and torrent files, so
	there is no big problem here.
	* src/main.cc
2008-04-26 08:12:46 +00:00
Tatsuhiro Tsujikawa 8678e1f380 2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that causes segmentaion fault when reading XML 
containing
	unescapsed character like '&'.
	Also a modification was made which avoids adding unnecessary
	characters stack and appending unused string.
	* src/ExpatMetalinkProcessor.cc
	* src/FileMetalinkParserState.h
	* src/FilesMetalinkParserState.h
	* src/FinMetalinkParserState.h
	* src/HashMetalinkParserState.h
	* src/InitialMetalinkParserState.h
	* src/LanguageMetalinkParserState.h
	* src/MetalinkMetalinkParserState.h
	* src/MetalinkParserState.h
	* src/MetalinkParserStateMachine.cc
	* src/MetalinkParserStateMachine.h
	* src/OSMetalinkParserState.h
	* src/PieceHashMetalinkParserState.h
	* src/PiecesMetalinkParserState.h
	* src/ResourcesMetalinkParserState.h
	* src/SizeMetalinkParserState.h
	* src/SkipTagMetalinkParserState.h
	* src/URLMetalinkParserState.h
	* src/VerificationMetalinkParserState.h
	* src/VersionMetalinkParserState.h
	* src/XML2SAXMetalinkProcessor.cc
2008-04-26 07:43:01 +00:00
Tatsuhiro Tsujikawa 90d5b5c0a2 2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added StringFormat class, which internally calls vasprintf.
	operator<< is defined for this class, so it can be used with iostream
	classes nicely. SimpleLogger and following functions are rewritten
	using StringFormat class.
	Besides, now Logger class's methods are non-const, many classes
	that has a const Logger* as a member variable are modified to remove
	const qualifier from the variable declaration.
	* src/HelpItemFactory.cc
	* src/Request.cc
	* src/SimpleLogger.cc
	* src/StringFormat.cc
	* src/StringFormat.h
	* src/Util.cc
	* src/option_processing.cc
	* src/version_usage.cc
	* test/StringFormatTest.cc
	* src/*.h: The classes that has const Logger* as a member variable.
2008-04-26 05:58:49 +00:00
Tatsuhiro Tsujikawa 0f92203ffe 2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Log error in AccRequestGroup when reading BitTorrent/Metalink 
file is
	failed. Also fixed memory link when exception is thrown there.
	* src/main.cc (AccRequestGroup)
2008-04-26 01:09:56 +00:00
Tatsuhiro Tsujikawa cbc34b4e3a s/Accept-Feature/Accept-Features/ 2008-04-25 17:47:12 +00:00
Tatsuhiro Tsujikawa 2a81fd466d 2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added build-in "Accept-Feature" support. For now only "metalink" is
	used in this header field.
	This "metalink" value is removed from the list when connecting URLs
	fed by metalink file to avoid loop in "transparent" metlaink.
	* src/HttpRequest.cc
	* src/HttpRequest.h: Renamed _userHeaders as _headers. Accept-Feature
	header is also held in this variable. Also renamed setUserHeaders as
	addHeader and it was rewritten to add header not just to clear the old
	value.
	* src/HttpRequestCommand.cc
	* src/Metalink2RequestGroup.cc: Added the code to remove "metalink"
	from "Accept-Feature" list.
	* src/RequestGroup.cc: Added "metalink" to "Accept-Feature" by default.
	* src/RequestGroup.h
	* src/TaggedItem.cc: Moved Concat class to a2functional.h.
	* src/a2functional.h: Included <string> because Concat class depends on
	it.
	* test/HttpRequestTest.cc
2008-04-25 17:44:03 +00:00
Tatsuhiro Tsujikawa 8ea2f386cb 2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added comment
	* src/RequestGroup.cc (createNextCommand)
2008-04-25 16:26:40 +00:00
Tatsuhiro Tsujikawa c3151ba188 2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Capitalized METHOD_GET and METHOD_HEAD
	* src/Request.cc
2008-04-25 16:24:34 +00:00
Tatsuhiro Tsujikawa e0877ec26b 2008-04-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added getDownloadResults() method
	* src/RequestGroupMan.cc
	* src/RequestGroupMan.h
2008-04-23 10:28:56 +00:00
Tatsuhiro Tsujikawa 4f6df4be39 2008-04-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that aria2 exits when commands is empty() but
	_routineCommands are not.
	* src/DownloadEngine.cc
2008-04-23 10:03:52 +00:00
Tatsuhiro Tsujikawa da615e4e7a 2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use the default value pulled from Option object in 
HelpItemFactory.
	except options whose defualt value is embedded in a usage text.
	* src/HelpItemFactory.cc
	* src/HelpItemFactory.h
	* src/option_processing.cc
	* src/version_usage.cc
2008-04-22 11:26:50 +00:00
Tatsuhiro Tsujikawa c87fe0022d 2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added --quiet option to make aria2 quiet (no console output).
	--quiet option is tagged with ADVANCED.
	* src/HelpItemFactory.cc
	* src/LogFactory.cc
	* src/LogFactory.h
	* src/MultiUrlRequestInfo.cc
	* src/MultiUrlRequestInfo.h
	* src/NullStatCalc.h: New class. This class prints nothing.
	* src/OptionHandlerFactory.cc
	* src/main.cc
	* src/option_processing.cc
	* src/prefs.h
	* src/usage_text.h
2008-04-22 10:29:48 +00:00
Tatsuhiro Tsujikawa 9c6904f8d4 2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Add HTTP tag to --header option. Removed ADVANCED tag instead.
	* src/HelpItemFactory.cc (createHelpItems):
2008-04-22 10:20:11 +00:00
Tatsuhiro Tsujikawa 7f0754c505 2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compilation error in ExpatMetalinkProcessor.cc
	* src/ExpatMetalinkProcessor.cc
2008-04-22 09:12:59 +00:00
Tatsuhiro Tsujikawa 5f55bc197f 2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Reuse socket if the origin server supports HTTP keep-alive and
	--enable-http-keep-alive or --enable-http-pipelining is given.
	The current implementation doesn't reuse the connections 
established
	against proxy server.

	* src/AbstractCommand.cc
	* src/DownloadEngine.cc
	* src/DownloadEngine.h
	* src/HttpDownloadCommand.cc
	* src/HttpInitiateConnectionCommand.cc
	* src/HttpResponseCommand.cc
2008-04-22 08:52:47 +00:00
Tatsuhiro Tsujikawa 1c7c6f9898 2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten HTTP keep-alive and pipelining routine.
	* src/AbstractCommand.cc
	* src/HttpConnection.cc
	* src/HttpDownloadCommand.cc
	* src/HttpRequest.cc
	* src/HttpRequestCommand.cc
	* src/HttpResponseCommand.cc
	* src/Request.cc
	* src/Request.h
	* src/RequestGroup.cc
	* test/HttpRequestTest.cc
	* test/HttpResponseTest.cc
	* test/RequestTest.cc
2008-04-22 07:15:35 +00:00
Tatsuhiro Tsujikawa f1816a1d4b 2008-04-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added missing setUserHeaders call
	* src/HttpRequestCommand.cc
2008-04-21 13:19:01 +00:00
Tatsuhiro Tsujikawa cfe373cbbf 2008-04-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Call FileAllocationMan::nextFileAllocationEntryExists() first.
	Calling FileAllocationMan::isFileAllocationBeingExecuted() is 
somwhat
	waste of time because it is more likey false.
	* src/FileAllocationDispatcherCommand.cc (execute)
2008-04-21 12:31:10 +00:00
Tatsuhiro Tsujikawa e1fa62e6c7 2008-04-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Now HTTP status and version are a member variable of HttpHeader.
	HTTP status is processed as a string, not integer.
	* src/AbstractProxyResponseCommand.cc
	* src/HttpConnection.cc
	* src/HttpHeader.cc
	* src/HttpHeader.h
	* src/HttpHeaderProcessor.cc
	* src/HttpHeaderProcessor.h
	* src/HttpResponse.cc
	* src/HttpResponse.h
	* test/HttpHeaderProcessorTest.cc
	* test/HttpResponseTest.cc
2008-04-21 10:48:11 +00:00
Tatsuhiro Tsujikawa 3eb74629cb 2008-04-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added --header option. You can specify any number of additional 
HTTP headers
	like:
	aria2 --header="X-A: 300" --header="X-B: 900" http://host/file
	Unlike other commad-line option, you can use --header option 
multiple times.
	* src/HelpItemFactory.cc
	* src/HttpRequest.{cc, h}
	* src/HttpRequestCommand.cc
	* src/OptionHandlerFactory.cc
	* src/OptionHandlerImpl.h
	* src/option_processing.cc
	* src/prefs.h
	* src/usage_text.h
	* test/HttpRequestTest.cc (testUserHeaders)
2008-04-20 06:30:44 +00:00
Tatsuhiro Tsujikawa c1c5e7369f 2008-04-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
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
2008-04-20 05:42:15 +00:00
Tatsuhiro Tsujikawa 3505201f33 2008-04-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten SharedHandle. Now copy constructor taking raw pointer 
has
	keyword explicit and SharedHandle's default constructor 
initializes
	its internal obj to null, old implementation initializes it 
using
	obj's default constructor.
	To assign null, write SharedHandle<T> x(...); x.reset();
	TODO: test/SharedHandleTest.cc needs more tests.
	* src/SharedHandle.h
2008-04-20 00:50:22 +00:00
Tatsuhiro Tsujikawa 99733a84e2 2008-04-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed type in man page.
	* doc/aria2c.1.txt
2008-04-15 12:37:15 +00:00
Tatsuhiro Tsujikawa ebed4b6df7 2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Merged Ross's 0.13.1+1 Cygwin compile fix patch.
	* src/SimpleLogger.{cc, h}
2008-04-13 13:38:25 +00:00
Tatsuhiro Tsujikawa 846e7c70f5 2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Implemented auto protocol detection.
	Now you can do:
	aria2c -Z http://host/file file1.torrent file2.metalink
	(Note: -Z option is required for auto protcol detection.)
	Then aria2c downloads 3 files simultaneously:
	1. http://host/file
	2. file1.torrent <-- read local torrent file
	3. file2.metalink <-- read local Metalink file.

	Same thing goes with -i option. Assume your uris.txt contans:
	http://host/file
	file1.torrent
	file2.metalink
	Then you can do: aria2c -i uris.txt
	(Note: -Z option is not needed if -i option is given.)
	
	* src/main.cc
	* src/ProtocolDetector.{cc, h}
	* test/ProtocolDetectorTest.cc
2008-04-13 13:30:12 +00:00
Tatsuhiro Tsujikawa 0516a07fa6 2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compile error without gnutls/libgcrypt/libgpg-error and 
openSSL
        installed
        * src/ARC4Encryptor.h
        * src/ARC4Decryptor.h
2008-04-13 01:33:48 +00:00
Tatsuhiro Tsujikawa 5f56e52498 2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Renamed argument from 'errno' to 'err', since errno is confused 
with
        errno defined in errno.h.
        * src/LibgcryptARC4Decryptor.h
        * src/LibgcryptARC4Context.h
        * src/LibgcryptDHKeyExchange.h
        * src/LibgcryptARC4Encryptor.h
2008-04-13 01:31:53 +00:00
Tatsuhiro Tsujikawa d13c416a94 2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten choking algorithm.
	* src/PeerChokeCommand.{cc, h}
	* src/BtInterestedMessage.cc
	* src/PeerSessionResource.{cc, h}
	* src/DefaultPeerStorage.{cc, h}
	* src/BtNotInterestedMessage.cc
	* src/DefaultBtMessageDispatcher.{cc, h}
	* src/BtMessageDispatcher.h
	* src/Peer.{cc, h}
	* src/BtLeecherStateChoke.{cc, h}
	* src/BtSetup.cc
	* src/BtSeederStateChoke.{cc, h}
	* src/PeerStorage.h
	* test/MockPeerStorage.h
	* test/MockBtMessageDispatcher.h
2008-04-13 01:25:36 +00:00
Tatsuhiro Tsujikawa 8b91d22ca4 2008-04-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compilation error on x84-64 platform.
	* src/AuthConfig.cc: Included ostream.
2008-04-09 13:32:51 +00:00
Tatsuhiro Tsujikawa d034c4d773 2008-03-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten getBasename() and getDirname(), without standard 
library
	basename(), dirname().
	* src/File.cc
	* test/FileTest.cc
2008-03-16 09:04:21 +00:00
Tatsuhiro Tsujikawa 5cc4ca5887 2008-03-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added Simplified Chinese translation. Also updated the following
	translations: Polish, Dutch, German. Great thanks to all 
translators.
2008-03-15 11:05:03 +00:00
Tatsuhiro Tsujikawa 42fa16b780 2008-03-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Suppress content-range error when 'Content-Range' response header
	doesn't contains bytes-unit specifier 'bytes'
	* src/HttpHeader.cc (getRange)
	* test/HttpHeaderTest.cc
2008-03-15 04:25:55 +00:00
Tatsuhiro Tsujikawa 538a8fcfe7 2008-03-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compilation error with g++-4.3
2008-03-15 04:19:46 +00:00
Tatsuhiro Tsujikawa 8dacfe45b8 2008-03-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added missing include files for MinGW
	* test/HttpHeaderProcessorTest.cc
	* test/DHTRoutingTableSerializerTest.cc
	* test/DHTRoutingTableDeserializerTest.cc
	* test/UriListParserTest.cc
2008-03-13 13:13:53 +00:00
Tatsuhiro Tsujikawa 34df2cc416 2008-03-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Now download line is printed nicely with no garbage at the end 
of
	line. I use ioctl to get the columns of terminal.
	If stdout is redirected to another device, instead of carriage 
return,
	end of line '\n' character is used. This is feature 
request#1909659
	* src/ConsoleStatCalc.cc (calculateStat)
2008-03-11 16:18:33 +00:00
Tatsuhiro Tsujikawa 102ce611d1 2008-03-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Included a2time.h
	* src/DHTMessageDispatcher.h
	* src/DHTMessageEntry.h
	* src/DHTReplaceNodeTask.h
	* src/DHTMessageTracker.h
	* src/Util.h
	* src/CookieBox.h
	* src/SocketCore.h
	* src/DefaultBtMessageDispatcher.h
	* src/SocketCore.cc
	* src/Util.cc
	* src/DHTPingTask.h
2008-03-11 14:47:08 +00:00
Tatsuhiro Tsujikawa 852315bf11 2008-03-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed high memory footprint when DHT is enabled.
	This is not a memory leak, but DHTReplaceNodeTask is more frequently
	queued than it is processed and the queue is getting longer. As a
	consequence, momory usage is increased.
	As for a fix, instead of issuing DHTReplaceNodeTask, I've implemented
	replacement cache in DHTBucket which is described in Kademlia paper.
	* src/DHTRoutingTable.cc (addNode): Removed the issuing of
	DHTReplaceNodeTask.
	* src/DHTBucket.{h, cc}
	(cacheNode): New function.
	(getCachedNodes): New function.
	(dropNode): Push back cached node to _nodes.
	* test/DHTBucketTest.cc
	(testCacheNode): New test
	(testDropNode): New test
2008-03-11 14:19:10 +00:00
Tatsuhiro Tsujikawa ddb00a9445 2008-03-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Allocate memory for peekBuf in initiateSecureConnection() to 
avoid
	the unused 4KB memory when ssl is not used.
	* src/SocketCore.cc
2008-03-11 12:33:20 +00:00
Tatsuhiro Tsujikawa ce5c17f1b3 2008-03-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added summary log for peer announce storage.
	* src/DHTPeerAnnounceStorage.cc (handleTimeout)
	
	Removed cast
	* src/DefaultPeerStorage.cc (addPeer)

	Log exception message
	* src/DHTMessageTracker.cc (handleTimeout)

	Fixed casting
	* test/HttpRequestTest.cc
	* test/MetalinkProcessorTest.cc
	* test/PieceTest.cc
	* test/MetalinkEntryTest.cc
	* test/SequenceTest.cc
2008-03-11 12:31:14 +00:00
Tatsuhiro Tsujikawa 3349c7625c 2008-03-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/ParameterizedStringParser.cc (createLoop):
	Removed unused variable sstep.

	* src/AlphaNumberDecorator.h (decode): Rewritten.
2008-03-09 15:19:35 +00:00
Tatsuhiro Tsujikawa 68b84574ae 2008-03-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/Util.{h, cc}
	(parseUInt): New function.
	(alphaToNum): Now returns unsigned int and 0 when overflow 
detected.
	The actual range is uint32_t.
	* test/UtilTest.cc
	
	* src/ParameterizedStringParser.cc:
	Use Util::parseUInt() for loop variables.
	* test/ParameterizedStringParserTest.cc
	
	* src/PStringNumLoop.h: Make _startValue and _endValue unsigned 
int.
2008-03-09 15:03:47 +00:00
Tatsuhiro Tsujikawa 7f40794931 2008-03-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten the functions for binding port.
	* src/DHTConnectionImpl.{h, cc}
	* src/PeerListenCommand.{h, cc}
	* src/DHTSetup.cc
	* src/BtSetup.cc
	* test/DHTConnectionImplTest.cc
2008-03-09 14:09:17 +00:00
Tatsuhiro Tsujikawa 032c7c2808 2008-03-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
type cleanup for allmost all remaining files.
2008-03-09 12:24:01 +00:00
Tatsuhiro Tsujikawa ca3f6e57f3 2008-03-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Type clarification
	* src/PeerSessionResource.{h, cc}
	* src/DefaultPieceStorage.{h, cc}
	* src/Peer.{h, cc}
	* test/PeerSessionResourceTest.cc

	Use div function
	* src/BtPieceMessage.cc (erasePieceOnDisk)
2008-03-08 11:10:37 +00:00
Tatsuhiro Tsujikawa 2555098ecd 2008-03-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Type clarification
	* src/DefaultPeerStorage.{h, cc}
	* test/DefaultPeerStorageTest.cc
2008-03-08 10:44:25 +00:00
Tatsuhiro Tsujikawa c64a191061 2008-03-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Type clarification: size_t for length or size, uint64_t for file
	length, off_t for file offset.
	* src/DefaultBtProgressInfoFile.cc
	* src/DefaultBtContext.{h, cc}
	* src/DefaultBtInteractive.cc
	* src/DownloadCommand.{h, cc}
	* src/IteratableChunkChecksumValidator.{h, cc}
	* src/SegmentMan.{h, cc}
	* src/SingleFileDownloadContext.{h, cc}
	* src/IteratableChecksumValidator.{h, cc}
	* src/BtContext.h
	* src/IteratableValidator.h
	* src/DownloadContext.h
	* test/SingleFileDownloadContextTest.cc
	* test/DefaultBtContextTest.cc
	* test/MockBtContext.h
	* test/Metalink2RequestGroupTest.cc
2008-03-08 10:33:56 +00:00
Tatsuhiro Tsujikawa 518a200d57 2008-03-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Type clarification: size_t for length or size, uint64_t for file
	length, off_t for file offset.

	* src/PiecedSegment.cc
	* src/GrowSegment.h
	* src/DefaultBtRequestFactory.h
	* src/DefaultBtProgressInfoFile.cc
	* src/UnknownLengthPieceStorage.h
	* src/DefaultPieceStorage.cc
	* src/UnknownLengthPieceStorage.cc
	* src/DefaultBtInteractive.cc
	* src/GrowSegment.cc
	* src/BitfieldMan.h
	* src/DownloadCommand.cc
	* src/BtRequestFactory.h
	* src/PiecedSegment.h
	* src/DefaultPieceStorage.h
	* src/Piece.cc
	* src/DefaultBtRequestFactory.cc
	* src/PieceStorage.h
	* src/Segment.h
	* src/Piece.h
	* src/BitfieldMan.cc
	* src/Util.cc
	* test/DefaultBtProgressInfoFileTest.cc
	* test/DefaultPieceStorageTest.cc
	* test/MockPieceStorage.h
	* test/BtRequestMessageTest.cc
	* test/DefaultBtMessageDispatcherTest.cc
	* test/BitfieldManTest.cc
	* test/GrowSegmentTest.cc
	* test/PieceTest.cc
	* test/SegmentTest.cc
	* test/SegmentManTest.cc
	* test/DefaultBtRequestFactoryTest.cc
	* test/MockBtRequestFactory.h
2008-03-08 08:04:28 +00:00
Tatsuhiro Tsujikawa aa669e8646 2008-03-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compilation error with --disable-nls
	It seems that defining gettext(Msgid) to ((const char *) 
(Msgid))
	in gettext.h causes the problem.
	* src/common.h
2008-03-08 07:53:16 +00:00
Tatsuhiro Tsujikawa e57a070a3f 2008-03-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed subPiece related functions.
	* src/Piece.{h, cc} : Also rewritten getCompletedLength().
	* src/DefaultPieceStorage.{h, cc}
	* test/PieceTest.cc
	* test/DefaultPieceStorageTest.cc
2008-03-07 12:44:20 +00:00
Tatsuhiro Tsujikawa fc0fa4203a 2008-03-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use unsigned char for data store.
2008-03-07 12:05:50 +00:00
Tatsuhiro Tsujikawa 7578d5fb22 2008-03-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Bump up version number to 0.13.0+1
	* configure.ac
	
	* Release 0.13.0+1
2008-03-07 11:48:19 +00:00
Tatsuhiro Tsujikawa 74b82c44e8 2008-03-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed inactive connection timeout to 120.
	To accept more mulually interested peers, disconnect peer when 
there
	is no interest between us after certain time passed.
	* src/DefaultBtInteractive.cc (checkActiveInteraction)
2008-03-05 15:31:09 +00:00
Tatsuhiro Tsujikawa 37a5b99f33 2008-03-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that aria2 only uses first dns server in 
resolv.conf
	when compiled with async DNS support.
	* src/DownloadEngine.cc
	* src/option_processing.cc: Lengthened DNS timeout to 30. I 
think old
	value '10' will be a little bit short when some DNS servers are
	offline and several DNS servers are tried. It should be 
configured
	by command-line option.
2008-03-05 10:35:39 +00:00
Tatsuhiro Tsujikawa 62e1cbd0c0 2008-03-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Merged Ross's mingw patch.
	* src/DHTRoutingTableDeserializer.cc
	* src/DHTRoutingTableSerializer.cc
	* src/Platform.{h, cc}
	* src/timegm.h
	* src/gettimeofday.h
	* src/getaddrinfo.h
	* src/SocketCore.h
	* src/common.h
	* src/inet_aton.h
	* src/DownloadEngine.h
	* src/gai_strerror.h
	* src/a2netcompat.h
	* configure.ac
	* configure
	* aclocal.m4
2008-03-03 15:41:58 +00:00
Tatsuhiro Tsujikawa 55552adb93 2008-03-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Included missing iostream.
	* test/AllTest.cc
	* test/BtDependencyTest.cc
	* test/BtExtendedMessageTest.cc
	* test/DHTConnectionImplTest.cc
	* test/DHTMessageFactoryImplTest.cc
	* test/DHTMessageTrackerEntryTest.cc
	* test/DHTNodeTest.cc
	* test/DHTRoutingTableSerializerTest.cc
	* test/DefaultBtAnnounceTest.cc
	* test/DefaultBtContextTest.cc
	* test/DefaultBtMessageFactoryTest.cc
	* test/DefaultExtensionMessageFactoryTest.cc
	* test/HandshakeExtensionMessageTest.cc
	* test/HttpResponseTest.cc
	* test/MetalinkProcessorTest.cc
	* test/MultiFileAllocationIteratorTest.cc
	* test/SocketCoreTest.cc
	* test/UTPexExtensionMessageTest.cc
2008-03-03 11:30:12 +00:00
Tatsuhiro Tsujikawa 6b07846b58 2008-03-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Reorganized includes.
	* src/NameResolver.cc
2008-03-03 10:47:16 +00:00
Tatsuhiro Tsujikawa 4771fcf53c 2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compilation error without ares/c-ares
	* src/NameResolver.h:
2008-03-01 09:31:54 +00:00
Tatsuhiro Tsujikawa 3f17f5ffd7 2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added a test for large file.
	* test/MetalinkProcessorTest.cc (testLargeFileSize):
2008-03-01 06:07:10 +00:00
Tatsuhiro Tsujikawa 067ef72e5e 2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that file size is ignored if size > INT32_MAX
	* src/SizeMetalinkParserState.cc (endElement):
2008-03-01 05:40:11 +00:00
Tatsuhiro Tsujikawa a31cd44130 2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Bump up version number to 0.13.0
	* configure.ac
	
	* Release 0.13.0
2008-03-01 04:44:13 +00:00
Tatsuhiro Tsujikawa b1aeb277aa 2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated Makfefile.am to make 'make dist' work.
	Now packaged filename is aria2c-VERSION.tar.bz2.
	Added README, README.html, and aria2c.1.html to dist_doc_DATA.
	Added LICENSE.OpenSSL to dist_noinst_DATA.

	Large file support is now configured by configure script.
	* configure.ac
	
	Removed unsused source files
	* src/
	* test/

	Removed PeerDecl.h and BtContextDecl.h. typedefs are removed to
	Peer.h and BtContext.h respectively.
	* src/Peer.h
	* src/BtContext.h

	Updated translations.
	Added Polish, Thai, Indonesian, Norwegian Nynorsk, Hungarian
	translations. Great thanks to all translators!;)
	* po/*.{po, gmo}
2008-03-01 04:42:53 +00:00
Tatsuhiro Tsujikawa 3698b46805 2008-02-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Create MessageDigestHelper::staticSHA1DigestInit() which uses
	statically declared sha1 MessageDigestContext.
	* src/BtPieceMessage.cc: Use staticSHA1DigestInit() to avoid
	initialization of short-lived MessageDigestContext.
	* src/MessageDigestHelper.{h, cc}
	* src/main.cc
	
	Now DownloadCommand has a reference to MessageDigestContext to avoid
	the initialization of MessageDigestContext every time in validating
	chunk checksum.
	* src/DownloadCommand.{h, cc}
2008-02-28 17:40:47 +00:00
Tatsuhiro Tsujikawa a1458a1642 2008-02-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Add a file descriptor which connected to fast peer(latency<1500) 
to
	select(). This change reduced CPU load.
	* src/PeerInteractionCommand.cc
	* src/DefaultBtInteractive.{h, cc}
	* src/BtInteractive.h
2008-02-28 14:27:00 +00:00
Tatsuhiro Tsujikawa c766d945ef 2008-02-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the previous insufficient fix for possible busy loop.
	* src/MSEHandshake.cc (identifyHandshakeType)

	Removed unused functions.
	* src/MSEHandshake.{h, cc} (readDataAndDecrypt)
2008-02-28 14:18:12 +00:00
Tatsuhiro Tsujikawa 50bb9bd36d 2008-02-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed possible busy loop if first 20 bytes are not received for 
a few
	minutes.
	* src/MSEHandshake.{h, cc} (identifyHandshakeType)
	* src/ReceiverMSEHandshakeCommand.cc
2008-02-27 16:43:52 +00:00
Tatsuhiro Tsujikawa c1fd47809d 2008-02-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compilation error
	* src/ExpatMetalinkProcessor.cc
2008-02-27 15:04:42 +00:00
Tatsuhiro Tsujikawa f9afa5eeac 2008-02-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compile error on Mac OS X, on 64Bit OS maybe.
	* src/DHTBucket.cc

	Removed unnecessary cast.
	* src/HandshakeExtensionMessage.cc
2008-02-27 13:16:04 +00:00
Tatsuhiro Tsujikawa eb9f9ac59d 2008-02-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that option handler for 
PREF_METALINK_ENABLE_UNIQUE_PROTOCOL.
	is missing.
	* src/OptionHandlerFactory.cc
2008-02-27 12:56:52 +00:00
Tatsuhiro Tsujikawa 897ab7321f 2008-02-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that HAVE message is not sent for a piece they are
	downloaded fom http/ftp server before any BitTorrent handshake 
is done
	with peers.
	* src/DefaultBtInteractive.cc
2008-02-27 12:55:30 +00:00
Tatsuhiro Tsujikawa deff272435 2008-02-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed RequestInfo.h and FileAllocator.h since they have been 
removed.
	* src/Makefile.am
	* src/Makefile.in
2008-02-27 10:59:32 +00:00
Tatsuhiro Tsujikawa 8958b4c4d4 2008-02-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated README. Added html version of README and man page.
	* README
	* README.html
	* readme2html: Shell script to generate README.html from README 
using
	asciidoc.
	* doc/aria2c.1.html
	* doc/makeman: Added the line to generate aria2c.1.html
2008-02-26 12:38:45 +00:00
Tatsuhiro Tsujikawa 1d32c516d9 2008-02-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed offset calculation.
	* src/LibgcryptDHKeyExchange.h (computeSecret)
2008-02-24 13:56:03 +00:00
Tatsuhiro Tsujikawa 5a4d691aed 2008-02-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten itos and uitos using template. llitos and ullitos are
	replaced with itos and uitos respectively.
	* src/Util.{h, cc}
	* test/UtilTest.cc
2008-02-24 09:43:31 +00:00
Tatsuhiro Tsujikawa 27ab4b1579 2008-02-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that DH key exchange sometimes fails due to bad 
handling
	of the number of bytes required for storing public key and 
shared
	secret.
	* src/LibgcryptDHKeyExchange.h
	* src/LibsslDHKeyExchange.h: Also added function name to 
handleError.
	* src/MSEHandshake.cc
	* test/DHKeyExchangeTest.cc
2008-02-24 07:52:12 +00:00
Tatsuhiro Tsujikawa ac5332c5eb 2008-02-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed since they are not used.
	* src/Xml2MetalinkProcessor.{h, cc}
	* src/Socket.cc
	* src/SegmentSplitter.{h, cc}
	* test/Xml2MetalinkProcessorTest.cc
2008-02-24 07:41:16 +00:00
Tatsuhiro Tsujikawa a1f0d44c9f 2008-02-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that prevents aria2 from stopping other than by 
pressing
	Ctrl-C in BitTorrent download. It is reproducible using 
--seed-time
	option. aria2 doesn't stop even after --seed-time is satisfied 
and
	continues to output blank lines in the console.
	* src/ReceiverMSEHandshakeCommand.cc
	* src/PeerReceiveHandshakeCommand.cc
	* src/PeerListenCommand.cc
2008-02-23 15:37:47 +00:00
Tatsuhiro Tsujikawa 88cd57f7a2 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Bump up version number to 0.13.0rc
	* configure.ac
2008-02-21 14:41:23 +00:00
Tatsuhiro Tsujikawa 6148b08d34 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated man page and some usage text.
	* doc/aria2c.1.txt
	* src/usage_text.h
	* po/*.{po, gmo}
2008-02-21 14:23:36 +00:00
Tatsuhiro Tsujikawa 465b3bb961 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated translations. Added Finnish and Hebrew translations.
	Great thanks to all translators!
	* po/*.{po, gmo}
	* po/LINGUAS
2008-02-21 12:46:20 +00:00
Tatsuhiro Tsujikawa 7e6d037c97 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Log more detailed information about each message.
	* src/DHTQueryMessage.{h, cc}
	* src/DHTGetPeersMessage.{h, cc}
	* src/DHTFindNodeReplyMessage.{h, cc}
	* src/DHTGetPeersReplyMessage.{h, cc}
	* src/DHTAnnouncePeerMessage.{h, cc}
	* src/DHTResponseMessage.{h, cc}
	* src/DHTFindNodeMessage.{h, cc}
2008-02-21 12:25:26 +00:00
Tatsuhiro Tsujikawa a8eeb81883 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use constants defined in prefs.h
	* src/option_processing.cc
2008-02-21 12:24:06 +00:00
Tatsuhiro Tsujikawa 4b67290f00 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* test/AllTest.cc: Added OpenSSL, GNUTLS initialization code.
2008-02-21 02:21:14 +00:00
Tatsuhiro Tsujikawa 0d130b77f4 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Make room for future enchancements for IPv6 addresses.
	Bump up version number of dht.dat file format to 2.
	Not compatible with previous version.
	* src/DHTRoutingTableSerializer.cc
	* src/DHTRoutingTableDeserializer.cc
	* test/DHTRoutingTableSerializerTest.cc
2008-02-21 02:19:55 +00:00
Tatsuhiro Tsujikawa 24b91983e1 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added handling for the return values from
	PeerMessageUtil::createcompact().
	* src/DefaultBtContext.cc (computeFastSet):
2008-02-21 00:56:14 +00:00
Tatsuhiro Tsujikawa 3274b6acc7 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed abort when peer's ip address is IPv4-mapped address.
	* src/DefaultBtContext.cc (computeFastSet)

	Removed number-and-dots criteria, since 
Util::isNumberAndDotsNotation()
	cannot handle IPv4-mapped addresses.
	* src/DefaultBtInteractive.cc (addPeerExchangeMessage)
2008-02-20 17:45:22 +00:00
Tatsuhiro Tsujikawa cfd0a40fdb 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Proper return value handling for OpenSSL functions.
	* src/LibsslDHKeyExchange.h
2008-02-20 17:00:44 +00:00
Tatsuhiro Tsujikawa dd8f18956a 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Random bytes generation using libgcrypt and OpenSSL.
	* src/DHTUtil.{h, cc}
	* test/DHTUtilTest.cc
2008-02-20 16:57:47 +00:00
Tatsuhiro Tsujikawa 1ea9033363 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed segmentation fault when a DHT message which doesn't have 
'y' key
	received.
	* src/DHTMessageReceiver.cc (receiveMessage)
2008-02-20 16:52:09 +00:00
Tatsuhiro Tsujikawa c4aaea3ca2 2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that a return code is always 0. BUG#1897704
	If error occurred during the download or there exist unfinished
	downloads, aria2 returns with code 1.
	* src/RequestGroupMan.{h, cc}
	* src/MultiUrlRequestInfo.{h, cc}
	* src/main.cc
2008-02-20 16:46:56 +00:00
Tatsuhiro Tsujikawa 2cc471ebf6 2008-02-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
IPv6 support for SocketCore class.
	TODO: In SocketCore::establishConnection(), this is insufficient 
to
	determin the failure of connect() here because the socket is
	non-blocking state. The next addresses should be tried after 
select().
	TODO: NameResolver still uses c-ares(<= 1.4) 
ares_gethostbyname().
	If c-ares 1.5 or newer is installed, ares_getaddrinfo() should 
be used
	instead which address family independent.
	TODO: DHTRoutingTable{Deserializer,Serializer} currently saves 
peer
	information in a compact peer format which is for IPv4 only.
	
	Some BitTorrent functions in PeerMessageUtil still depends on 
IPv4 but
	this is a spec of BitTorrent protocol.
	* src/SocketCore.{h, cc}
	* src/PeerMessageUtil.cc
	* test/SocketCoreTest.cc
	* test/PeerMessageUtilTest.cc
	* test/DHTConnectionImplTest.cc

	Handle IPv4-mapped addresses.
	* src/DHTNode.cc: Now identity is determined by node id.
	* src/DHTMessageTrackerEntry.cc

	Because now PeerMessageUtil::unpackcompact() could fail, the 
caller
	should handle it.
	* src/DHTRoutingTableDeserializer.cc
	* src/DHTMessageFactoryImpl.cc
2008-02-20 13:02:48 +00:00
Tatsuhiro Tsujikawa 4708809094 2008-02-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Change the unit of --stop option from a minute to a second.
	* src/usage_text.h
	* src/DownloadEngineFactory.cc
	* src/OptionHandlerFactory.cc
	* src/message.h
	* src/TimedHaltCommand.cc
2008-02-20 12:33:16 +00:00
Tatsuhiro Tsujikawa 80bc9a8a21 2008-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Make listening socket non-block mode.
	* src/FtpConnection.cc
	* src/FtpNegotiationCommand.{h, cc}
	* src/PeerListenCommand.cc
	
	Fixed the bug that cause slow ftp negotiation.
	* src/FtpNegotiationCommand.{h, cc}
2008-02-19 13:36:39 +00:00
Tatsuhiro Tsujikawa 766e092af3 2008-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added basic tag to --enable-dht, --dht-listen-port option.
	* src/HelpItemFactory.cc (createHelpItems)
2008-02-19 12:05:21 +00:00
Tatsuhiro Tsujikawa c87b6b2984 2008-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated text.
	* src/usage_text.h
2008-02-18 17:37:54 +00:00
Tatsuhiro Tsujikawa 1d0175a29e 2008-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/MSEHandshake.cc (encryptAndSendData): Use std::min().
2008-02-18 17:13:20 +00:00
Tatsuhiro Tsujikawa 3c41ea24bf 2008-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Determin _threadtholdSpeed in each constructor for
	ActivePeerConnectionCommand and PeerReceiveHandshakeCommand.
	* src/ActivePeerConnectionCommand.{h, cc}
	* src/PeerReceiveHandshakeCommand.{h, cc}
	* src/BtSetup.cc
	* src/BtConstants.h
2008-02-18 17:11:44 +00:00
Tatsuhiro Tsujikawa 20cd2e5246 2008-02-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added --bt-min-crypto-level and --bt-require-crypto options.
	* src/OptionHandlerFactory.cc
	* src/MSEHandshake.cc
	* src/HelpItemFactory.cc
	* src/option_processing.cc
	* src/ReceiverMSEHandshakeCommand.cc
	* src/prefs.h
	* src/DefaultBtAnnounce.cc
	* src/InitiatorMSEHandshakeCommand.cc
	* src/usage_text.h
	* test/MSEHandshakeTest.cc
2008-02-18 13:41:58 +00:00
Tatsuhiro Tsujikawa c37539eb25 2008-02-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Bump version number to 0.13.0b
	* configure.ac
2008-02-17 16:17:26 +00:00
Tatsuhiro Tsujikawa b7e841e885 2008-02-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Updated doc.
	* src/MessageDigestHelper.h:
2008-02-17 16:12:47 +00:00
Tatsuhiro Tsujikawa ebd524b6a2 2008-02-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use raw message digest as a token instead of its hexadecimal
	representation.
	* src/DHTTokenTracker.cc (generateToken)
2008-02-17 16:10:10 +00:00
Tatsuhiro Tsujikawa c0d2223c77 2008-02-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added Message Stream Encryption(MSE) support.
	Currently, aria2 accepts incoming connections with Obfuscation Header
	and legacy BitTorrent Header and establishes connections with
	Obfuscation Header first and if failed then retry with legacy
	BitTorrent header. If plain text and ARC4 is provided, aria2 always
	choose ARC4. The new option to change the default behavior is planned.
	For tracker extension, "supportcrypto=1" is added statically.
	* src/PeerInitiateConnectionCommand.{h, cc}
	* src/PeerConnection.{h, cc}
	* src/HandleRegistry.h
	* src/SocketCore.h
	* src/PeerReceiveHandshakeCommand.{h, cc}
	* src/BtRegistry.{h, cc}
	* src/PeerListenCommand.cc
	* src/InitiatorMSEHandshakeCommand.{h, cc}
	* src/ReceiverMSEHandshakeCommand.{h, cc}
	* src/MSEHandshake.{h, cc}
	* src/ARC4Encryptor.h
	* src/ARC4Decryptor.h
	* src/LibgcryptARC4Encryptor.h
	* src/LibgcryptARC4Decryptor.h
	* src/LibgcryptARC4Context.h
	* src/LibsslARC4Encryptor.h
	* src/LibsslARC4Decryptor.h
	* src/LibsslARC4Context.h
	* src/DHKeyExchange.h
	* src/LibgcryptDHKeyExchange.h
	* src/LibsslDHKeyExchange.h
	* src/DefaultBtAnnounce.cc: Just added "supportcrypto=1" parameter.
	* test/DefaultBtAnnounceTest.cc
	* test/ARC4Test.cc
	* test/DHKeyExchangeTest.cc
	
	Removed prepareForRetry() because it is not used.
	* src/PeerAbstractCommand.{h, cc}
	* src/PeerInteractionCommand.{h, cc}
	* src/PeerInitiateConnectionCommand.{h, cc}
2008-02-17 15:56:47 +00:00
Tatsuhiro Tsujikawa 1302123368 2008-02-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added the ability to load nodes from torrent file. These nodes are
	added to the routing table when downloading that torrent.
	* src/BtContext.h
	* src/DefaultBtContext.{h, cc}
	* src/DHTSetup.cc
	* src/DHTEntryPointNameResolveCommand.{h, cc}: Now accepts list of
	hostname and port pair, and resolves all of them.
	* src/NameResolver.{h, cc}: Added reset().
	* src/RequestGroup.cc	
	* test/DefaultBtContextTest.cc 
	* test/MockBtContext.h
	
	Removed assert() from DefaultBtContext and throw exception instead.
	* src/DefaultBtContext.cc
2008-02-13 15:17:08 +00:00
Tatsuhiro Tsujikawa bfcc300670 2008-02-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed segmentation fault bug when exiting if dht is disabled.
	* src/RequestGroup.cc
2008-02-12 13:49:39 +00:00
Tatsuhiro Tsujikawa bc1f1bdf35 2008-02-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed typo in log message and define the message in message.h
	* src/TimedHaltCommand.cc
	* src/message.h
2008-02-12 13:45:54 +00:00
Tatsuhiro Tsujikawa 1700f5c1bc 2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Included RecoverableException.h to fix compilation error.
	* test/DHTMessageFactoryImplTest.cc
2008-02-11 13:41:16 +00:00
Tatsuhiro Tsujikawa bebb7e1976 2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added test 'testDoReceivedAction' for DHTQueryMessage 
subclasses.
	* test/DHTPingMessageTest.cc
	* test/DHTGetPeersMessageTest.cc
	* test/DHTFindNodeMessageTest.cc
	* test/DHTAnnouncePeerMessageTest.cc
	* test/MockDHTMessage.h
	* test/MockDHTMessageFactory.h
	* test/MockDHTMessageDispatcher.h: New class.
2008-02-11 12:32:46 +00:00
Tatsuhiro Tsujikawa e9f980afc7 2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added DHTMessageDispatcherImpl. Now DHTMessageDispatcher is pure
	virtual.
	* src/DHTMessageDispatcher.h
	* src/DHTMessageDispatcherImpl.{h, cc}
	* src/DHTSetup.cc
2008-02-11 07:50:35 +00:00
Tatsuhiro Tsujikawa 413cbe192b 2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Adding handling of DHT error message. Just log error message and
	throw exception.
	* src/DHTMessageFactoryImpl.cc
	* test/DHTMessageFactoryImplTest.cc
2008-02-11 06:23:01 +00:00
Tatsuhiro Tsujikawa 34e6a1dc9a 2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added handling of dynamic cast failure.
	* src/DHTNodeLookupTask.cc
	* src/DHTPeerLookupTask.cc
2008-02-11 05:54:08 +00:00
Tatsuhiro Tsujikawa 9c277148b9 2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added the ability to stop aria2 itself when given time has 
passed
	from start. Use --stop option to specify time in minutes.
	When 0 is given, this feature is disabled.
	* src/OptionHandlerFactory.cc
	* src/TimeBasedCommand.h: Make _interval protected scope.
	* src/HelpItemFactory.cc
	* src/option_processing.cc
	* src/prefs.h
	* src/FillRequestGroupCommand.cc: Evaluate _e->isHaltRequested()
	before calling RequestGroupMan::fillRequestGroupFromReserver().
	Without this modification, the result list shows "ERR" when 
aria2 is
	stopped by --stop option. It should be "INPR".
	* src/DownloadEngine.{h, cc}
	* src/DownloadEngineFactory.cc
	* src/usage_text.h
	* src/TimedHaltCommand.{h, cc}: New class.
2008-02-11 05:07:08 +00:00
Tatsuhiro Tsujikawa 5d6f1c046a 2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Bootstrap through node added by port message.
	Currently bootstrap is executed if the number of buckets in routing
	table is 1.
	* src/BtPortMessage.{h, cc}
	* src/DefaultBtMessageFactory.{h, cc}
	* src/PeerInteractionCommand.cc
	* test/BtPortMessageTest.cc
	* test/MockDHTTask.h
2008-02-10 15:57:00 +00:00
Tatsuhiro Tsujikawa c064a2cd9e 2008-02-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Extract the Peer class's member variables, which are only needed 
after
	PeerInteractionCommand, into PeerSessionResource class.
	This class is instantiated in PeerInteractionCommand class's 
ctor and
	released in its dtor.
	This will make Peer class lightweight and uses less memory for 
peers
	which are not connected and wait in the queue.
	* src/PeerChokeCommand.cc
	* src/PeerSessionResource.{h, cc}
	* src/PeerInteractionCommand.cc
	* src/PeerAbstractCommand.cc: Note: 0 is given to onAbort() 
function.
	* src/DefaultBtInteractive.cc
	* src/BtPieceMessage.cc
	* src/BtInterestedMessage.cc
	* src/BtUnchokeMessage.cc
	* src/DefaultPeerStorage.{h, cc}
	* src/PeerInitiateConnectionCommand.cc
	* src/ActivePeerConnectionCommand.cc
	* src/BtNotInterestedMessage.cc
	* src/DefaultBtMessageDispatcher.cc
	* src/BtChokeMessage.cc
	* src/BtRequestMessage.cc
	* src/Peer.{h, cc}
	* src/BtRegistry.h
	* src/TrackerWatcherCommand.cc
	* src/PeerReceiveHandshakeCommand.cc
	* test/BtExtendedMessageTest.cc
	* test/BtAllowedFastMessageTest.cc
	* test/BtCancelMessageTest.cc
	* test/DefaultPieceStorageTest.cc
	* test/BtBitfieldMessageTest.cc
	* test/BtHaveMessageTest.cc
	* test/BtNotInterestedMessageTest.cc
	* test/BtRequestMessageTest.cc
	* test/PeerSessionResourceTest.cc
	* test/DefaultBtMessageDispatcherTest.cc
	* test/PeerTest.cc
	* test/BtInterestedMessageTest.cc
	* test/BtRejectMessageTest.cc
	* test/BtChokeMessageTest.cc
	* test/DefaultPeerStorageTest.cc
	* test/BtHaveNoneMessageTest.cc
	* test/BtHaveAllMessageTest.cc
	* test/DefaultExtensionMessageFactoryTest.cc
	* test/BtUnchokeMessageTest.cc
	* test/DefaultBtMessageFactoryTest.cc
	* test/HandshakeExtensionMessageTest.cc
	* test/UTPexExtensionMessageTest.cc
	* test/DefaultBtRequestFactoryTest.cc
	* test/BtPieceMessageTest.cc
	
	Removed typedef PeerStats.
	* src/PeerStat.h
	* src/SegmentMan.cc
2008-02-09 17:14:40 +00:00
Tatsuhiro Tsujikawa 04a7052013 2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added std namespace to copy, remove_copy, back_inserter,
	front_inserter.
	* src/RequestGroupMan.cc
	* src/DefaultPieceStorage.cc
	* src/StreamFileAllocationEntry.cc
	* src/BtFileAllocationEntry.cc
	* src/RequestGroup.cc
	* src/MetalinkEntry.cc
	* src/DelegatingPeerListProcessor.cc
	* src/DefaultBtRequestFactory.cc
	* src/DefaultBtMessageDispatcher.cc
	* src/version_usage.cc: Included <algorithm>
	* src/main.cc
	* src/MetalinkParserController.cc
	* src/DefaultBtContext.cc
	* src/DownloadEngineFactory.cc
	* src/a2algo.h

	Removed.
	* test/StreamUriListParserTest.cc
2008-02-08 18:39:26 +00:00
Tatsuhiro Tsujikawa f38eb15ca9 2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Only add socket to DownloadEngine's select routine when peer or
	localhost is unchoked and interested. This lowers CPU usage a
	little bit.
	* src/PeerInteractionCommand.cc
	* src/PeerAbstractCommand.{h, cc}
	* src/BtInteractive.h
	* src/DefaultBtInteractive.{h, cc}
2008-02-08 18:27:28 +00:00
Tatsuhiro Tsujikawa 9ab0ece87f 2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Revert previous change because get_peers message is needed for
	announce_peer anyway.	
	* src/DHTGetPeersCommand.cc
2008-02-08 18:21:19 +00:00
Tatsuhiro Tsujikawa f1d786469c 2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Request peers thought DHT only when download hasn't finished.
	* src/DHTGetPeersCommand.cc
2008-02-08 16:17:07 +00:00
Tatsuhiro Tsujikawa 6fe7b7c8f3 2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Force refresh bucket when startup if certain time has 
passed(currently 15 minutes).
	* src/DHTBucketRefreshTask.{h, cc}
	* src/DHTSetup.cc
2008-02-08 16:11:21 +00:00
Tatsuhiro Tsujikawa 1b7c198289 2008-02-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed "using namespace std;" from all sources. Appended std:: 
prefix to c++
	standard classes.
	Included string.h where mem* function are used.
2008-02-08 15:53:45 +00:00
Tatsuhiro Tsujikawa d82e183d34 2008-02-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Create directory before saving DHT routing table.
	Now ios::failure is now handled properly.
	* src/DHTAutoSaveCommand.cc
2008-02-05 17:38:24 +00:00
Tatsuhiro Tsujikawa 7b0a940ab4 2008-02-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed unnecessary cerr.
	* src/DownloadEngine.cc
2008-02-05 14:16:58 +00:00
Tatsuhiro Tsujikawa bdb1a25ca7 2008-02-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Catch exception inside DHTMessageReceiver::receiveMessage().
	Log unknown message.
	* src/DHTMessageReceiver.{h, cc}
	* src/DHTMessageFactory.h
	* src/DHTMessageFactoryImpl.{h, cc}
	* src/DHTMessageTracker.cc (handleTimeout): Catch and handle exception.
	* src/DHTInteractionCommand.cc
	* src/DHTUnknownMessage.{h, cc}
	* test/DHTUnknownMessageTest.cc
	* test/MockDHTMessageFactory.h
2008-02-05 14:15:50 +00:00
Tatsuhiro Tsujikawa 20621d011d 2008-02-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Commented out ip address comparison because a host can have 
multiple
	ip addresses and it is hard to predict the hostname is resolved 
into
	which one.
	* test/SocketCoreTest.cc (testWriteAndReadDatagram)
2008-02-02 13:06:55 +00:00
Tatsuhiro Tsujikawa af471b931e 2008-02-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* po/Makefile.in: Removed since this is generated by configure.
2008-02-02 11:28:07 +00:00
Tatsuhiro Tsujikawa 79764a1f11 2008-02-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compiler warning about redefinition of SIZE_MAX.
	Use common.h instead of config.h directly here.
	* src/Platform.{h, cc}

	The check of ENABLE_NLS is made in gettext.h, so it is not 
required
	here.
	* common.h
	
2008-02-02  gettextize  <bug-gnu-gettext@gnu.org>

	Updated gettext related files.
	* configure.ac (AC_CONFIG_FILES): Add intl/Makefile.
	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.17.
2008-02-02 04:38:24 +00:00
Tatsuhiro Tsujikawa 0f13363229 2008-02-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added DHT functionality, compatible with mainline.
	DHT is disabled by default. To enable it, give --enable-dht to 
aria2c.
	You may need to specify entry point to DHT network using
	--dht-entry-point. DHT uses UDP port to listen incoming message.
	Use --dht-listen-port to specify port number. Make sure that 
your
	firewall configuration can pass through UDP traffic to the port.
	The routing table is saved in $HOME/.aria2/dht.dat.
	* src/DHT*
	* src/BNode.{h, cc}
	* src/PeerInteractionCommand.cc: enable DHT functionality for a
	particular torrent.
	* src/Data.cc: Rewritten ctor.
	* src/OptionHandlerFactory.cc: Added --enable-dht, 
--dht-listen-port,
	--dht-entry-point.
	* src/DefaultBtInteractive.cc: Send port message if dht is 
enabled.
	* src/RequestGroup.cc: Initialize DHT functionality. When 
download
	ends, remove BtContext from DHTPeerAnnounceStorage.
	* src/BtPortMessage.{h, cc}: Rewritten.
	* src/message.h
	* src/OptionHandlerImpl.cc
	* src/option_processing.cc: Added --enable-dht, 
--dht-listen-port,
	--dht-entry-point.
	* src/Dictionary.{h, cc} (remove): New function.
	* src/prefs.h
	* src/DefaultBtMessageFactory.h
	* src/BtHandshakeMessage.cc
	* src/ActivePeerConnectionCommand.cc
	* src/SocketCore.{h, cc}: Added datagram socket support.
	* src/DefaultBtMessageFactory.cc
	* src/BtSetup.cc: Add BtContext to DHTPeerAnnounceStorage here.
	Create DHT commands.
	* src/BtMessageFactory.h
	* src/PeerMessageUtil.{h, cc}
2008-02-01 17:36:33 +00:00
Tatsuhiro Tsujikawa 0bce06348e 2008-01-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that log file is not written when configuration 
file doesn't exist.
	This is caused by using Logger class before LogFactory is not 
configured.
	BUG #1875079
	* src/option_processing.cc

	Warning message "configuration doesn't exist" is only printed 
when --conf is
	given.
	* src/option_processing.cc
2008-01-20 15:20:16 +00:00
Tatsuhiro Tsujikawa a548f956fe 2008-01-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use BencodeVisitor and MessageDigestHelper instead of 
ShaVisitor.
	ShaVisitor is now deprecated and slated to be removed.
	* src/DefaultBtContext.cc
2008-01-11 15:47:31 +00:00
Tatsuhiro Tsujikawa 160d5a8614 2008-01-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Externalize message to message.h
	* src/Platform.cc
	* src/message.h
2008-01-11 15:32:45 +00:00
Tatsuhiro Tsujikawa c1bc357d79 2008-01-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Set default domain and default path to cookie.
	* src/HttpResponse.cc
	* src/CookieBox.{h, cc}
	* src/CookieParser.{h, cc}
	* test/CookieParserTest.cc
2008-01-11 15:20:35 +00:00