summaryrefslogtreecommitdiff
path: root/TODO
Commit message (Collapse)AuthorAgeFilesLines
* 2008-11-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2008-11-161-58/+0
| | | | | | | Removed TODO * TODO
* Updated TODOTatsuhiro Tsujikawa2007-12-081-3/+1
|
* 2007-12-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-12-041-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Added XML2SAXMetalinkProcessor class, which is a lot faster than the predecessor, Xml2MetalinkParser class. I tested them against 94KB metalink file with 1234 chunk checksums. The new one parsed it in 22msec, while it took 6000msec with old one. * src/XML2SAXMetalinkProcessor.{h, cc} * test/XML2SAXMetalinkProcessorTest.cc * src/MetalinkParserController.{h, cc} * test/MetalinkParserControllerTest.cc * src/MetalinkParserState.h: Also added 16 subclasses. * src/main.cc * src/Metalink2RequestGroup.cc * src/MetalinkHelper.cc * src/MetalinkEntry.cc * src/ChunkChecksum.h Rewritten Base64 class for better performance. * src/Base64.{h, cc} * test/Base64Test.cc * src/HttpRequest.cc
* 2007-11-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-271-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rewritten to add content-type support. * src/DownloadHandler.{h, cc} * src/BtPostDownloadHandler.{h, cc} * test/BtPostDownloadHandlerTest.cc * src/MetalinkPostDownloadHandler.{h, cc} * test/MetalinkPostDownloadHandlerTest.cc * src/PostDownloadHandler.{h, cc} * src/DownloadHandlerConstants.{h, cc} * src/RequestGroup.cc * src/HttpResponseCommand.cc * src/FtpNegotiationCommand.cc * src/SingleFileDownloadContext.{h, cc} * src/RequestGroup.h * src/RequestGroupCriteria.h * src/ContentTypeRequestGroupCriteria.h Added 'mem' option value for --follow-metalink, --follow-torrent. If it is give, metalink/torrent file is not written to the disk, but just is kept in memory. Parsing is occurred on memory. * src/MetalinkHelper.{h, cc} * src/MetalinkProcessor.h * src/Xml2MetalinkProcessor.{h, cc} * test/Xml2MetalinkProcessorTest.cc * src/DownloadHandlerFactory.{h, cc} * test/DownloadHandlerFactoryTest.cc * src/PreDownloadHandler.{h, cc} * src/OptionHandlerFactory.cc * src/DefaultBtContext.{h, cc} * test/DefaultBtContextTest.cc * src/version_usage.cc * src/Metalink2RequestGroup.{h, cc} * src/RequestGroup.{h, cc} * src/a2functional.h * test/a2functionalTest.cc * src/MemoryBufferPreDownloadHandler.{h, cc} * src/OptionHandlerImpl.h * src/prefs.h * src/Util.{h, cc} * test/UtilTest.cc Keep DownloadResult rather than RequestGroup after downloads to reduce memory usage. * src/RequestGroupMan.{h, cc} * src/DownloadEngine.cc * src/BtDependency.{h, cc}: Changed the type of dependee from WeakHandle to SharedHandle because WeakHandle could be null. * src/RequestGroup.{h, cc} * src/DownloadEngineFactory.cc * src/DownloadResult.h Set totalLength after download finished * src/UnknownLengthPieceStorage.{h, cc} Keep torrent file specified in metalink in memory. * src/Metalink2RequestGroup.cc * src/BtDependency.cc * src/TrueRequestGroupCriteria.h Fixed the bug: seekg is used where seekp should be used. * src/ByteArrayDiskWriter.cc * test/ByteArraydiskWriterTest.cc
* 2007-11-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-221-0/+1
| | | | | | | | | | | | Trim announce URL * src/DefaultBtContext.cc * test/ShaVisitorTest.cc Trim argument s. Give trimed s to exception constructor. * src/Util.cc (parseInt)(parseLLInt) * test/UtilTest.cc
* 2007-11-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-221-1/+1
| | | | | | | | | | | | | | | | | | | | | Replaced strtol with Util::parseInt * src/ChunkedEncoding.cc * src/HttpConnection.cc * src/CookieBoxFactory.cc * src/ParameterizedStringParser.cc * src/Util.cc * test/UtilTest.cc * test/OptionHandlerTest.cc * src/Request.cc Throw exception when empty string is given. The message for exception changed. * src/Util.cc (parseInt)(parseLLInt) * src/message.h
* 2007-11-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-211-1/+0
| | | | | | | | | Set precision to 2 because share ratio is rounded into 1.0 if precision set to 1. * src/ConsoleStatCalc.cc (calculateStat)
* 2007-11-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Preallocate non-requested file which is adjacent forward to requested file('requested' files means the files given in --select-file option) if they share a same piece. This fixes long pause in the file system which doesn't support sparse files like FAT32 while downloading. * src/MultiFileAllocationIterator.{h, cc} * test/MultiFileAllocationIteratorTest.cc * src/FileEntry.{h, cc} Removed unused _option. * src/MultiDiskAdaptor.h * test/MultiDiskAdaptorTest.cc * src/DefaultPieceStorage.cc Set the default value of --seed-ratio to 1.0. If 0.0 is given, then seeding continues regardless of share ratio. * src/version_usage.cc * src/option_processing.cc * src/BtSetup.cc * doc/aria2c.1.txt * doc/aria2c.1 Fixed: Selective download is not working in BitTorrent * src/RequestGroup.cc Introduced Sequence class. Use this instead of Util::unfoldRange() * src/PieceStorage.h * test/MockPieceStorage.h * src/UnknownLengthPieceStorage.h * src/DefaultPieceStorage.{h, cc} * src/Metalink2RequestGroup.cc * src/RequestGroup.cc * src/Sequence.h * test/SequenceTest.cc * src/IntSequence.h * src/message.h * src/Util.{h, cc} * test/UtilTest.cc Added new function 'parse' to catch exception thrown by subclass's parseArg * src/OptionHandler.h * src/OptionParser.cc * src/NameMatchOptionHandler.h * src/OptionHandlerImpl.h * test/OptionHandlerTest.cc Added IntegerRangeOptionHandler. Used for --listen-port and --select-file. Now --listen-port accepts range of port. * src/OptionHandlerFactory.cc * src/version_usage.cc * src/OptionHandlerImpl.h * src/option_processing.cc * src/BtSetup.cc * src/PeerListenCommand.{h, cc} * doc/aria2c.1.txt * doc/aria2c.1 Implemented operator< for Exception class to provide easy way to print exception stack trace. * src/Exception.{h, cc} * src/main.cc * src/option_processing.cc
* 2007-11-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-181-1/+0
| | | | | | | | | | | | | | | | | | | | | * src/version_usage.cc (showVersion): Reworked. (showUsage): Added examples. Removed Hint for total length and file name. * src/Metalink2RequestGroup.cc * src/RequestGroup.{h, cc} * src/HttpResponseCommand.cc * src/FtpNegotiationCommand.cc Now --follow-torrent and --follow-metalink option work properly. * src/RequestGroup.cc Updated man page * doc/aria2c.1.txt * doc/aria2c.1
* 2007-11-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Added ifdef and some modifications to compile without BitTorrent, Metalink, MessageDigest support. * src/PieceHashCheckIntegrityEntry.cc * src/MetalinkEntry.h * src/version_usage.cc * src/main.cc * src/DownloadEngine.{h, cc} * src/Metalink2RequestGroup.cc * src/Peer.cc * src/RequestGroup.cc * src/MetalinkHelper.cc * test/DefaultPieceStorageTest.cc * test/MetalinkPostDownloadHandlerTest.cc * test/Metalink2RequestGroupTest.cc Hide TOTAL SPD when all downloads complete. * src/ConsoleStatCalc.cc Log target system information. * src/main.cc
* 2007-11-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-131-2/+4
| | | | | | | | | | | | | | | | | Now --metalink-location accepts a comma-deliminated list of locations. * src/MetalinkEntry.{h, cc} * test/MetalinkEntryTest.cc * src/version_usage.cc * src/Metalink2RequestGroup.cc * src/Xml2MetalinkProcessor.cc * test/Xml2MetalinkProcessorTest.cc * doc/aria2c.1.txt * doc/aria2c.1 * src/Util.cc (toUpper)(toLower): Rewritten.
* 2007-11-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-131-1/+0
| | | | | | | | | | | Added the ability to detect duplicate download entry which is about to download the same file other RequestGroup is downloading. * src/RequestGroup.cc * src/HttpResponseCommand.cc * src/FtpNegotiationCommand.cc
* 2007-11-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-131-2/+1
| | | | | | | | | | | | | Recalculates download progress when loading a control file, if the piece length of DownloadContext is different from the one saved in the control file. Currently in-flight pieces are ignored. * src/DefaultBtProgressInfoFile.cc * test/DefaultBtProgressInfoFileTest.cc * src/Util.{h, cc} * test/UtilTest.cc
* 2007-11-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implemented checksum validation feature(1 checksum for each file) The validation takes place after the download. * src/PieceHashCheckIntegrityEntry.{h, cc}: New class. * src/IteratableChecksumValidator.{h, cc}: Rewritten. * src/CheckIntegrityCommand.cc: Changed log message. * src/Metalink2RequestGroup.cc: Set checksum to SingleFileDownloadContext. * src/StreamCheckIntegrityEntry.{h, cc}: Now derived from PieceHashCheckIntegrity class. * src/BtCheckIntegrityEntry.{h, cc}: Now derived from PieceHashCheckIntegrity class. * src/ChecksumCheckIntegrityEntry.{h, cc}: New class. * src/IteratableValidator.h: New class. * src/message.h * src/CheckIntegrityEntry.{h, cc} * src/IteratableChunkChecksumValidator.{h, cc} * src/SingleFileDownloadContext.h * src/DownloadCommand.cc --allow-overwrite=true is no longer needed to check file integrity before download in BitTorrent download. * src/RequestGroup.cc (getInitialCommand) Removed RequestGroup from queue when RequestGroup::getInitialCommand() throws exception. * src/RequestGroupMan.cc (getInitialCommands)
* 2007-11-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-091-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't connect server before checking file integrity at startup, if filesize and output file path are known. * src/AbstractCommand.cc * src/StreamFileAllocationEntry.cc * src/Metalink2RequestGroup.cc * src/RequestGroup.{h, cc} * src/HttpResponseCommand.cc * src/FtpNegotiationCommand.cc Added DownloadFailureException. If it is thrown, RequestGroup should halt. * src/AbstractCommand.cc * src/DownloadFailureException.h * src/RequestGroup.cc Catch RecoverableException, instead of DlAbortEx. * src/RequestGroupMan.cc * src/FillRequestGroupCommand.cc * src/MetaFileUtil.cc * src/IteratableChunkChecksumValidator.cc Now first parameter of MSG_DOWNLOAD_ABORTED is gid(RequestGroup:: getGID()) * src/CheckIntegrityCommand.cc * src/message.h Print gid instead of idx. * src/RequestGroupMan.cc Removed exception throwers declaration. * src/DirectDiskAdaptor.{h, cc} * src/SocketCore.{h, cc} * src/MultiDiskAdaptor.{h, cc} * src/HttpConnection.{h, cc} * src/HttpResponse.{h, cc} * src/DiskAdaptor.{h, cc} * src/CopyDiskAdaptor.{h, cc} * src/MultiDiskAdaptor.{h, cc} * src/HttpHeaderProcessor.{h, cc} * src/AbstractSingleDiskAdaptor.{h, cc} * src/Util.{h, cc} * test/UtilTest.cc * src/DefaultDiskWriter.{h, cc} * src/FtpConnection.{h, cc} * src/AbstractDiskWriter.{h, cc} Removed duplicate code. * src/StreamCheckIntegrityEntry.cc Removed unnecessary include. * src/DiskWriter.h Included Exception.h * src/option_processing.cc Included 2 files and added doc * src/TrackerWatcherCommand.cc * src/SocketCore.cc (writeData): Fixed send error with GnuTLS.
* 2007-11-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-081-2/+3
| | | | | | | | | | | | | | | | | | | Changed CheckIntegrityEntry interface so that it can define the action when all the chunk checksums are valid. * src/CheckIntegrityEntry.h * src/StreamCheckIntegrityEntry.{h, cc} * src/BtCheckIntegrityEntry.{h, cc}: Currently,when all the checksums are valid, then aira2 goes to seeding mode. Sometimes it is better to exit rather than doing seeding. So, it would be good to toggle this behavior. * src/CheckIntegrityCommand.cc * src/AbstractCommand.cc * src/RequestGroup.cc
* 2007-11-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now a file is stored in the directory specified in .metalnk file (file[@name]). * src/Metalink2RequestGroup.cc Create the directory structure when opening the file if it doesn't exist. * src/AbstractDiskWriter.cc * src/Util.{h, cc} * src/File.h * test/UtilTest.cc Removed file name comparison * src/Metalink2RequestGroup.cc * src/HttpResponseCommand.cc Rewritten using Util::mkdirs() * src/FileEntry.cc (setupDir) * test/FileEntryTest.cc Updated doc * src/SingleFileDownloadContext.h
* 2007-11-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-041-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed: the listen port sent to the tracker is wrong. If aria2 fails to open listen port, then remove the port number from the tracker request. * src/DefaultBtAnnounce.cc * test/DefaultBtAnnounceTest.cc * test/MockPieceStorage.h Inject randomizer to DefaultBtAnnounce and DefaultBtContext to make them more testable. * src/DefaultBtAnnounce.{h, cc} * src/DefaultBtContext.{h, cc} * src/Util.{h, cc} * test/DefaultBtAnnounceTest.cc * test/DefaultBtContextTest.cc * test/UtilTest.cc Added 'B' to upload bytes readout. * src/ConsoleStatCalc.cc Now the listen port for BitTorrent download is opened when it is needed. * src/DownloadEngineFactory.cc * src/BtSetup.{h, cc} * src/PeerListenCommand.{h, cc} Now an exception thrown while parsing tracker response is now logged. If DlAbortEx is catched, then btAnnounce->resetAnnounce() immediately called, which means no retry is made in this case, assuming a tracker has a problem. * src/TrackerWatcherCommand.cc Fixed: downloading a file whose length is unkown fails. * src/DownloadCommand.cc Simplified prepareForNextSegment() * src/DownloadCommand.cc Updated * po/POTFILES.in
* 2007-10-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-10-301-1/+0
| | | | | | | | | | | | | | | | | | | | Added ftp://USER:PASSWD@Servername automatic parsing. * src/Request.{h, cc}: Removed AuthResolvers. Added _username and _password. Recognize username and password in URI. * src/main.cc: Use AuthConfigFactory instead of RequestFactory. * src/RequestGroup.cc: Use AuthConfigFactory instead of RequestFactory. * src/RequestFactory.{h, cc}: Removed. * src/AuthConfigFactory.{h, cc}: New class. * src/FtpConnection.cc: Use AuthConfigFactory. * src/HttpRequest.cc: Use AuthConfigFactory. * test/HttpRequestTest.cc: Updated. * test/RequestTest.cc: Updated. * test/AuthConfigFactoryTest.cc: New class. * test/RequestFactoryTest.cc: Removed.
* 2007-10-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-10-291-3/+1
| | | | | | | | | | Use RequestGroup::allDownloadFinished() to decide whether the control file should be removed or saved. * src/RequestGroup.{h, cc} (allDownloadFinished): New function. * src/RequestGroupMan.cc (removeStoppedGroup) (save)
* 2007-10-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-10-291-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use File::renameTo() * src/DefaultBtProgressInfoFile.cc Added --no-file-allocation-limit command-line option. * src/version_usage.cc * src/option_processing.cc * src/OptionHandlerFactory.cc * src/RequestGroup.{h, cc} * src/BtCheckIntegrityEntry.cc * src/StreamCheckIntegrityEntry.cc * src/prefs.h * doc/aria2c.1.txt * doc/aria2c.1 Now prealloc is the default value for --file-allocation option. * src/version_usage.cc * src/option_processing.cc * doc/aria2c.1.txt * doc/aria2c.1 Don't URL-encode user-agent. * src/HttpRequest.cc Updated translations * po/LINGUAS: Added nl for Dutch translation. * po/nl.po: Added Dutch translation, thanks to A. Bram Neijt. * po/de.po: Updated German translation, thanks to Patrick Ruckstuhl. * po/POTFILES.in: Updated.
* 2007-10-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-10-231-1/+6
| | | | | | | | | | | | | * src/Piece.{h, cc}: Added SubPiece infrastructure to track down the data smaller than block length. A block length can be specified by constructor's argument. * src/DefaultPieceStorage.{h, cc} (getMissingPiece): Get a missing piece in the range of given FileEntry. This function is not used in the program yet. * src/Util.h: Added some macros.
* 2007-10-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-10-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added HTTP/1.1 keep alive and pipelining support. See --enable-http-keep-alive and --enable-http-pipelining option. * src/AbstractCommand.{h, cc}: Now it has one-to-many relation to Segment. * src/HttpDownloadCommand.{h, cc} * src/OptionHandlerFactory.cc * src/HttpConnection.{h, cc} * src/version_usage.cc * src/HttpInitiateConnectionCommand.cc * src/FtpInitiateConnectionCommand.cc * src/Segment.h * src/HttpRequestCommand.{h, cc} * src/option_processing.cc * src/prefs.h * src/HttpResponseCommand.cc * src/SegmentMan.{h, cc} * src/FtpNegotiateCommand.cc * src/HttpProxyResponseCommand.cc * src/Request.cc * src/HttpRequest.cc * src/DownloadCommand.cc * test/HttpRequestTest.cc * test/RequestTest.cc
* 2007-10-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-10-161-1/+1
| | | | | | | | * src/ConsoleCalc.cc (calculateStat): Hide SPD after the download finished.
* 2007-10-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-10-151-1/+1
| | | | | | | | | | | | | | * src/Metalink2RequestGroup.cc (generate): Throw exception instead of catching it inside the method. When no file entry is found in a metalink without querying user preferences, throw the exception with the error message that suggests metalink file is probably broken. * src/RequestGroup.cc (postDownloadProcessing): Catch exception here.
* 2007-10-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-10-111-1/+6
| | | | | | | | | | Implemented BitTorrent/http/ftp integrated download. I've rewritten lots of files and now some headers have forward class declarations to reduce compile time. The implementation is extremely alpha stage, I recommend to use this for testing purpose only.
* 2007-09-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-09-031-0/+8
| | | | | | | | | | | | Automatically save *.aria2 control file of http/ftp download in every 60 seconds. * src/AutoSaveCommand.{h, cc}: New class. * src/TimeBasedCommand.{h, cc}: New class. * src/DownloadEngineFactory.cc (newConsoleEngine)
* 2007-08-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-08-301-3/+0
| | | | | | | | | | | | | | Added the ability to disable segmented download in .metalink. aria2 can now recognize 'maxconnections' attribute in 'resources' and 'url' tag. * src/MetalinkEntry.{h, cc} * src/RequestResource.{h, cc} * src/MetalinkRequestInfo.cc * src/Xml2MetalinkProcessor.cc * test/Xml2MetalinkProcessorTest.cc
* 2007-08-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-08-281-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added parameterized URI support. * src/main.cc: -Z option added. * src/OptionHandlerFactory.cc * src/prefs.h: Added PREF_FORCE_SEQUENTIAL. * src/PStringDatum.h: New class. * src/PStringSegment.{h,cc}: New class. * src/PStringNumLoop.h: New class. * src/PStringSelect.h: New class. * src/NumberDecorator.h: New class. * src/FixedWidthNumberDecorator.h: New class. * src/AlphaNumberDecorator.h: New class. * src/PStringVisitor.h: New class. * src/PStringBuildVisitor.{h,cc}: New class. * src/ParameterizedStringParser.{h,cc}: New class. * src/Util.{h,cc} (isNumber): New function. (isLowercase): New function. (isUppercase): New function. (alphaToNum): New function. * test/ParameterizedStringParserTest.cc: New class. * test/AlphaNumberDecoratorTest.cc: New class. * test/PStringBuildVisitorTest.cc: New class. * test/UtilTest.cc (testIsNumber): New function. (testIsLowercase): New function. (testIsUppercase): New function. (testAlphaToNum): New function. Added '\n' after the error message * src/RequestInfo.h (printDownloadAbortMessage)
* 2007-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-08-241-0/+5
| | | | | | | * src/Xml2MetalinkProcessor.cc (getPieceHash): Added missing .c_str().
* Updated TODOTatsuhiro Tsujikawa2007-08-091-1/+0
|
* Fixed the bug that a remote metalink is not processed even ifTatsuhiro Tsujikawa2007-08-081-1/+0
| | | | | | | '-o foo.metalink' is specified. * src/MetalinkRequestInfo.cc
* Applied Ross's patchTatsuhiro Tsujikawa2007-08-081-0/+3
| | | | | | | | | * src/a2netcompat.h * src/main.cc Updated man page
* Updated TODOTatsuhiro Tsujikawa2007-08-031-3/+0
|
* 2007-08-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-07-311-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-07-231-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merged Ross's win32 patch(manually) In the course of merging, following files are added. * src/strptime.{h,c} * src/libgen.{h,c} * src/inet_aton.{h,c} * src/Platform.{h,cc} * src/localtime_r.{h,c} * src/getaddrinfo.{h,c} I've gethered network related things, and put them to following file: * src/a2netcompat.h Also io related things are put to following file: * src/a2io.h Changed %lld to %s because mingw32 doesn't recognize %lld. * src/message.h (MSG_ALLOCATION_COMPLETED) (EX_TOO_LARGE_FILE) (EX_SIZE_MISMATCH) (EX_FILE_OFFSET_OUT_OF_RANGE) (EX_INVALID_CHUNK_CHECKSUM) (EX_INVALID_RANGE_HEADER) * src/FileAllocationCommand.cc * src/HttpResponse.cc * src/RequestGroup.cc * src/MultiDiskAdaptor.cc * src/OptionHandlerImpl.h * src/HttpResponseCommand.cc * src/FtpNegotiateCommand.cc * src/IteratableChecksumValidator.cc * src/SegmentMan.cc * src/ChunkChecksumValidator.cc Added Randomizer::getRandomNumber(long int) * src/Randomizer.h (getRandomNumber) * src/SimpleRandomizer.h (getRandomNumber) * src/BitfieldMan.cc (getMissingIndexRandomly): Use this new function. * src/Util.cc (randomAlpha): Use this new function.
* 2007-07-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-07-211-0/+8
| | | | | | | Converted int's to in32_t. long long int's are also converted to int64_t
* (no commit message)Tatsuhiro Tsujikawa2007-07-081-3/+0
|
* Fixed compile error when message digest is not available.Tatsuhiro Tsujikawa2007-07-041-0/+3
|
* Updated TODOTatsuhiro Tsujikawa2007-07-011-7/+0
|
* 2007-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-07-011-0/+6
| | | | | | | | | | | Create directory structure specified in metalink file. * src/RequestGroup.h, src/RequestGroup.cc (initAndOpenFile): Create a directory to store files if it does not exist. (getDir): New function.
* 2007-06-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-06-091-4/+0
| | | | | | | | | | | | | Added -j command-line option. * src/OptionHandlerFactory.cc (createOptionHandlers) * src/main.cc * src/ByteArrayDiskWriter.h, src/ByteArrayDiskWriter.cc Rewritten using stringstream. * src/TrackerUpdateCommand.h, src/TrackerUpdateCommand.cc Rewritten using stringstream.
* 2007-06-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-06-051-5/+2
| | | | | | | | Make download size shown in MB, KB. * src/ConsoleDownloadEngine.h (sendStatistics) * src/Util.h, srcUtil.cc (abbrevSize): New function.
* 2007-06-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-06-041-2/+0
| | | | | | | | | | | | | | | | | | | | | | | Accept incoming connections if download rate is low. * src/PeerListenCommand.h, src/PeerListenCommand.cc: (_lowestSpeedLimit): New variable. (setLowestSpeedLimit): New function. (execute): Accept incoming connections if download rate is low. MAX_PEERS is ignored in this case. Disable PREF_OUT in multiple concurrent download: * src/RequestGroup.h, src/RequestGroup.cc (setUserDefinedFilename): New function. * src/DownloadEngineFactory.cc (newConsoleEngine): Do not set PREF_OUT to requestGroup in multiple concurrent download. * src/DefaultSegmentManFactory.cc (createNewInstance): Comment out the line: segmentMan->ufilename = ...
* 2007-06-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-06-041-0/+1
| | | | | | | | | | | Accept incoming connections if download rate is low. * src/PeerListenCommand.h, src/PeerListenCommand.cc: (_lowestSpeedLimit): New variable. (setLowestSpeedLimit): New function. (execute): Accept incoming connections if download rate is low. MAX_PEERS is ignored in this case.
* 2007-06-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-06-031-7/+0
| | | | | | | | | | | | | | | | | | | | | RequestGroup::getNextCommand() was renamed to createNextCommand(). Added its overloaded method. * src/RequestGroup.h (_numConcurrentCommand): New variable. (setNumConcurrentCommand): New function. * src/RequestGroup.cc Abort download if same file is being downloaded concurrently. * src/RequestGroup.h, src/RequestGroupMan.cc (isSameFileBeingDownloaded): New function. * src/HttpResponseCommand.cc (executeInternal) * src/FtpNegotiateCommand.cc (recvSize) * src/message.h (EX_DUPLICATE_FILE_DOWNLOAD): New definition. * main.cc: Added help message for -i option.
* 2007-06-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-05-311-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/FileAllocationCommand.cc: Derived from RealtimeCommand. * src/CheckIntegrityCommand.cc: Derived from RealtimeCommand. * src/MetalinkEntry.h (checksum): Changed to ChecksumHandle * src/MetalinkRequestInfo.cc (checksum): Changed to ChecksumHandle * src/File.cc (mkdirs): OPEN_MODE -> DIR_OPEN_MODE * src/common.h (DIR_OPEN_MODE): New definition * src/RequestGroup.cc (prepareForNextAction): Added an argument. * src/message.h (MSG_GOOD_CHECKSUM): New definition (MSG_BAD_CHECKSUM): New definition * src/HttpResponseCommand.cc (handleDefaultEncoding): Continue download sequence in new non-segmented download. * src/FileAllocationEntry.h (_nextDownloadCommand): New variable. * src/DownloadCommand.cc (prepareForNextSegment): Create ChecksumCommand if checksum is available. * src/RealtimeCommand.h, src/RealtimeCommand.cc: New class. * src/IteratableChecksumValidator.h, src/IteratableChecksumValidator.cc: New class. * src/ChecksumCommand.h, src/ChecksumCommand.cc: New class.
* Use CUIDCounter instead of BtRuntime::getNewCuid():Tatsuhiro Tsujikawa2007-05-201-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | * src/ActivePeerConnectionCommand.cc * src/PeerInteractionCommand.cc * src/BtRuntime.h (cuidCounter): Removed. (getNewCuid): Removed. * src/DownloadEngineFactory.cc * src/PeerListenCommand.cc * src/TrackerUpdateCommand.cc * src/PeerInitiateConnectionCommand.cc Use CUIDCounter instead of BtRuntime::getNewCuid(): * src/ActivePeerConnectionCommand.cc * src/PeerInteractionCommand.cc * src/BtRuntime.h (cuidCounter): Removed. (getNewCuid): Removed. * src/DownloadEngineFactory.cc * src/PeerListenCommand.cc * src/TrackerUpdateCommand.cc * src/PeerInitiateConnectionCommand.cc
* 2007-05-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-05-201-0/+1
| | | | | | | | * Added the simultaneous download feature. * src/main.cc: Print "Exception caught: " when exception is caught.
* 2007-05-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-05-201-0/+16
| | | | | | * Added the simultaneous download feature.