Commit Graph

21 Commits (9b9f3a6c631b779a8dac4212128ca9c4163f1bce)

Author SHA1 Message Date
Tatsuhiro Tsujikawa 906215317a 2010-07-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added --conditional-get option.  Download file only when the local
	file is older than remote file.  This function only works with
	HTTP(S) downloads only. It does not work if file size is specified
	in Metalink. It also ignores Content-Disposition header. If a
	control file exists, this option will be ignored. This function
	uses If-Modified-Since header to get only newer file
	conditionally. When getting modification time of local file, it
	uses user supplied filename(see --out option) or filename part in
	URI if --out is not specified.
	* doc/aria2c.1.txt
	* src/HttpHeader.cc
	* src/HttpHeader.h
	* src/HttpRequest.cc
	* src/HttpRequest.h
	* src/HttpRequestCommand.cc
	* src/HttpResponse.cc
	* src/HttpResponseCommand.cc
	* src/OptionHandlerFactory.cc
	* src/TimeA2.cc
	* src/TimeA2.h
	* src/prefs.cc
	* src/prefs.h
	* src/usage_text.h
	* test/HttpResponseTest.cc
	* test/TimeTest.cc
2010-07-16 14:13:04 +00:00
Tatsuhiro Tsujikawa ca4940622c 2010-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Changed naming standards for class member variable: now it looks
	like var_ instead of _var.
2010-06-21 13:51:56 +00:00
Tatsuhiro Tsujikawa c47eaa5ce3 2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Renamed member variables
	* src/TimeA2.cc
	* src/TimeA2.h
2010-06-12 14:01:46 +00:00
Tatsuhiro Tsujikawa f15d22b619 2010-03-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added vbegin() and vend() for fixed sized array.
	* src/DownloadHandlerConstants.cc
	* src/FeatureConfig.cc
	* src/OptionHandlerFactory.cc
	* src/ServerStat.cc
	* src/TimeA2.cc
	* src/XmlRpcMethod.cc
	* src/array_fun.h
	* src/download_helper.cc
	* src/messageDigest.cc
	* src/util.cc
	* test/BittorrentHelperTest.cc
	* test/DHTRoutingTableDeserializerTest.cc
	* test/DHTRoutingTableSerializerTest.cc
	* test/DefaultBtAnnounceTest.cc
	* test/DefaultBtProgressInfoFileTest.cc
	* test/DownloadContextTest.cc
	* test/DownloadHelperTest.cc
	* test/FeatureConfigTest.cc
	* test/FeedbackURISelectorTest.cc
	* test/HttpRequestTest.cc
	* test/InOrderURISelectorTest.cc
	* test/MSEHandshakeTest.cc
	* test/MultiDiskAdaptorTest.cc
	* test/MultiFileAllocationIteratorTest.cc
	* test/PriorityPieceSelectorTest.cc
	* test/RequestGroupManTest.cc
	* test/UtilTest.cc
	* test/XmlRpcMethodTest.cc
	* test/a2algoTest.cc
	* test/array_funTest.cc
2010-03-25 13:51:10 +00:00
Tatsuhiro Tsujikawa 8d09b069e2 2010-03-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added Time global::wallclock to cache "current time" to reduce the
	call gettimeofday(). Global variables are now in namespace global.
	* src/AbstractCommand.cc
	* src/ActivePeerConnectionCommand.cc
	* src/AdaptiveURISelector.cc
	* src/BtLeecherStateChoke.cc
	* src/BtLeecherStateChoke.h
	* src/BtSeederStateChoke.cc
	* src/BtSeederStateChoke.h
	* src/BtStopDownloadCommand.cc
	* src/ConsoleStatCalc.cc
	* src/DHTBucket.cc
	* src/DHTGetPeersCommand.cc
	* src/DHTMessageTrackerEntry.cc
	* src/DHTNode.cc
	* src/DHTPeerAnnounceEntry.cc
	* src/DHTPeerAnnounceStorage.cc
	* src/DHTSetup.cc
	* src/DefaultBtAnnounce.cc
	* src/DefaultBtInteractive.cc
	* src/DefaultBtMessageDispatcher.cc
	* src/DefaultPeerStorage.cc
	* src/DefaultPieceStorage.cc
	* src/DownloadCommand.cc
	* src/DownloadEngine.cc
	* src/FileEntry.cc
	* src/HttpServerBodyCommand.cc
	* src/HttpServerCommand.cc
	* src/HttpServerResponseCommand.cc
	* src/LpdMessageDispatcher.cc
	* src/MultiUrlRequestInfo.cc
	* src/Peer.cc
	* src/Peer.h
	* src/PeerAbstractCommand.cc
	* src/PeerStat.h
	* src/RequestSlot.cc
	* src/RequestSlot.h
	* src/SegmentMan.cc
	* src/ServerStatMan.cc
	* src/SleepCommand.cc
	* src/SpeedCalc.cc
	* src/SpeedCalc.h
	* src/TimeA2.cc
	* src/TimeA2.h
	* src/TimeBasedCommand.cc
	* src/TimeSeedCriteria.h
	* src/UTMetadataRequestTracker.h
	* src/UTPexExtensionMessage.cc
	* src/wallclock.h
2010-03-06 08:29:53 +00:00
Tatsuhiro Tsujikawa 4db349c1f3 2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Untabify. Fixed one line in copyright which is longer than 80
	columns.
	* src
	* test
2010-01-05 16:01:46 +00:00
Tatsuhiro Tsujikawa e976b23728 2009-10-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Renamed Util.{cc,h} as util.{cc,h}
	* src/Util.cc
	* src/Util.h
	* src/util.cc
	* src/util.h
2009-10-22 15:35:33 +00:00
Tatsuhiro Tsujikawa c6035b2e24 2009-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Moved static functions in Util class to namespace util.
	* src
	* test
2009-10-22 15:09:00 +00:00
Tatsuhiro Tsujikawa 4797b0e72d 2008-11-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Handle date before epoch.
	To create *bad* Time object, call Time::null().
	* src/CookieParser.cc
	* src/FtpConnection.cc
	* src/FtpConnection.h
	* src/FtpNegotiationCommand.cc
	* src/RequestGroup.cc
	* src/TimeA2.cc
	* src/TimeA2.h
	* test/CookieParserTest.cc
	* test/FtpConnectionTest.cc
	* test/TimeTest.cc
2008-11-05 10:30:43 +00:00
Tatsuhiro Tsujikawa 4305a51dd0 2008-10-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug in Time::elapsed(): Util::difftvsec() is used where
	Util::difftv() should be used instead.
	* src/TimeA2.cc
	* src/TimeA2.h
2008-10-05 14:03:08 +00:00
Tatsuhiro Tsujikawa 5fb94a3af0 2008-09-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added a constuctor that receives struct timeval.
	Added operator<.
	* src/TimeA2.cc
	* src/TimeA2.h
	* test/TimeTest.cc
2008-09-07 04:57:31 +00:00
Tatsuhiro Tsujikawa 69b18308d9 2008-09-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Implmented the functions to parse date.
	* src/TimeA2.cc
	* src/TimeA2.h
	* test/TimeTest.cc
2008-09-07 04:19:11 +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 f771b42e53 2008-05-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/TimeA2.cc
	* src/TimeA2.h
	(Time::difference): New function.
	(Time::elapsed): Done optimization.
2008-05-31 05:36:59 +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 46e8c332cd 2007-08-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Make a2netcompat.h include a2io.h to fix compilation error:
	* src/a2netcompat.h
	* src/SocketCore.cc: Removed include of a2io.h
	* src/Util.cc: Removed include of a2io.h
	
	Gather time related functions to a2time.h:
	* src/a2time.h: New file.
	* src/DefaultPeerStorage.cc
	* src/SimpleLogger.cc
	* src/Util.{h, cc}
	* src/SimpleRandomizer.h
	* src/TimeA2.{h,cc}
	* src/DownloadCommand.cc
	* src/main.cc

	Removed #ifdef __MINGW32__ since gai_strerror is included in
	a2netcompat.h:
	* src/NameResolver.cc
	
	Fixed compilation error without openssl:
	* src/SocketCore.{h,cc}: Moved include of openssl/err.h to 
SocketCore.h

	Added default block to suppress compiler warnings:
	* src/MetalinkRequestInfo.cc (AccumulateNonP2PUrl::operator())
	
2007-07-26  Ross Smith II  <aria2spam at smithii dot com>

	MinGW build enhancements. The following files are added:
	* src/gai_strerror.{c,h}
	* src/gettimeofday.{c,h}

	Changes to support the above new files:
	* configure.ac
	* src/Makefile.am
	* src/a2netcompat.h
	* src/TimeA2.cc
	* src/DefaultPeerStorage.cc
	* src/NameResolver.cc: removed mingw_strerror() function.
	* src/SocketCore.cc: removed mingw_strerror() function.

	Miscellaneous MinGW build fixes. 
	* src/a2io.h: Use _lseeki64() instead of lseek()
	* src/common.h
	* src/DefaultFileAllocator.cc
	* src/GlowFileAllocator.cc
	* src/main.cc: Moved #include "prefs.h" to quiet compile error.
	* src/NameResolver.cc
	(callback): Changed int32_t to int.
	(resolve): Changed int32_t to int.
	* src/Platform.cc
	* src/Platform.h
	* test/MultiDiskWriterTest.cc
	* test/PeerMessageUtilTest.cc
	* src/localtime_r.c: Add DeleteCriticalSection() and at exit().

	Other enhancements and fixes.
	* src/HttpRequestCommand.cc
	(executeInternal) Use non-blocking socket for HTTPS (MinGW 
only).
	* src/SocketCore.cc: 
	(error): New function to abstract errno/WSAGetLastError().
	(errorMsg): New function to abstract errno/WSAGetLastError().
	(initiateSecureConnection): Added more detailed error reporting.
	* src/SocketCore.h: Added private variable blocking, to allow
	proper handling of OpenSSL psuedo-errors.
	* src/message.h
	(EX_SSL_INIT_FAILURE)
	(EX_SSL_IO_ERROR)
	(EX_SSL_PROTOCOL_ERROR)
	(EX_SSL_UNKNOWN_ERROR)
	(EX_SSL_CONNECT_ERROR)
	(EX_SOCKET_BLOCKING)
	(EX_SOCKET_NONBLOCKING)
	(EX_SOCKET_UNKNOWN_ERROR)
	* src/Util.cc
	(setGlobalSignalHandler): Renamed signal to sig as signal is a
	reserved name.
	(httpGMT): Fixed typo.
2007-07-31 16:45:16 +00:00
Tatsuhiro Tsujikawa 6574e44f88 2007-07-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Converted int's to in32_t. long long int's are also converted to
	int64_t
2007-07-21 08:56:16 +00:00
Tatsuhiro Tsujikawa d7155e8f6c 2007-06-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Reduce the number of calls to gettimeofday to lower CPU load.
	* src/TimeA2.h, src/TimeA2.cc (differenceInMillis): New 
function.
	* src/SpeedCalc.h, src/SpeedCalc.cc (calculateSpeed): New 
function.
	* src/Peer.h (calculateUploadSpeed): New function.
	(calculateDownloadSpeed): New function.
	* src/DefaultPeerStorage.cc
	(CalculateStat): Added _now variable.
	In operator(), call Peer::calculateDownloadSpeed(const struct 
timeval&)
	and Peer::calculateUploadSpeed(const struct timeval&)
	
	Drop connection if no request or piece message is exchanged in
	a certain interval.
	* src/DefaultBtInteractive.h
	(btRuntime): New variable.
	(inactiveCheckPoint): New variable.
	(checkActiveInteraction): New function.
	* src/DefaultBtInteractive.cc (receiveMessages): Reset timer 
when
	request or piece message is received.
	(checkActiveInteraction): New function.
	(doInteractionProcessing): Call checkActiveInteraction.

	Fixed the bug that causes remote Metalink and Torrent files are 
not
	processed.
	* src/MultiUrlRequestInfo.cc (createNextRequestInfo): Fixed the 
bug.
2007-06-20 14:43:34 +00:00
Tatsuhiro Tsujikawa 6e6ba30c60 2007-03-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To add the command-line option which disables netrc support:
	* src/OptionHandlerFactory.cc
	(createOptionHandlers): Added PREF_NO_NETRC.
	* src/main.cc: Added -n option.
	* src/prefs.h (PREF_NO_NETRC): New definition.
	* src/RequestFactory.cc: Do not use netrc in ftp if 
PREF_NO_NETRC is
	V_TRUE.
	Note that netrc is not used in http, http proxy even if 
PREF_NO_NETRC
	is V_FALSE. This may get configurable in the future release.
	
	To clear peer's error status by time basis:
	* src/PeerAbstractCommand.cc
	(onAbort): Call Peer::startBadCondition().
	* src/Peer.h, src/Peer.cc
	(error): Removed.
	(_badConditionStartTime): New variable.
	(_badConditionInterval): New variable. Initialized to 10 
seconds.
	(startBadCondition): New function.
	(isGood): New function.
	* src/DefaultPeerStorage.cc
	(addPeer): Use Peer::isGood().
	(FindFinePeer): Use Peer::isGood().

	Always include port number in http request header:
	* src/HttpRequest.cc (getHostText): Always include port number 
in
	http request header.
2007-03-27 16:16:44 +00:00
Tatsuhiro Tsujikawa 1b5af8e829 2006-09-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/*.{h,cc}:
	Added an exception to the license which allows linking with 
OpenSSL.
2006-09-21 15:31:24 +00:00
Tatsuhiro Tsujikawa 19d593413c 2006-08-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* po/ru.po: Azamat sent me Russian translation.
	
	* src/FtpNegotiateCommand.cc
	(recvGreeting): Call disableWriteCheckSocket just after
	socket->setBlockingMode(). This avoids unnecessary CPU-hog loop.

	Rename Time.h to TimeA2.h to avoid compilation ploblem on
	case-insesitive filesystem(BUG#1531057).

	* src/Time.h: Renamed as TimeA2.h.
	* src/Time.cc: Renamed as TimeA2.cc.
	* src/TimeA2.h: New class.
	* src/TimeA2.cc: New class.
	* src/PeerChokeCommand.h: Replaced Time.h with TimeA2.h.
	* src/TrackerWatcherCommand.h: Replaced Time.h with TimeA2.h.
	* src/PeerAbstractCommand.h: Replaced Time.h with TimeA2.h.
	* src/AbstractCommand.h: Replaced Time.h with TimeA2.h.
	* src/PeerInteractionCommand.h: Replaced Time.h with TimeA2.h.
	* src/ConsoleDownloadEngine.h: Replaced Time.h with TimeA2.h.
	* src/TorrentAutoSaveCommand.h: Replaced Time.h with TimeA2.h.
	* src/DownloadCommand.h: Replaced Time.h with TimeA2.h.
	* src/TorrentMan.h: Replaced Time.h with TimeA2.h.
	* src/TorrentDownloadEngine.h: Replaced Time.h with TimeA2.h.
	* src/RequestSlot.h: Replaced Time.h with TimeA2.h.
	* src/SleepCommand.h: Replaced Time.h with TimeA2.h.
	* src/DownloadEngine.cc: Replaced Time.h with TimeA2.h.
2006-08-07 16:28:41 +00:00