mirror of https://github.com/aria2/aria2
12 Commits (45f949c713d38e6e2141703cd9cb069c321a991f)
Author | SHA1 | Message | Date |
---|---|---|---|
![]() |
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 |
|
![]() |
444bf5495d |
2007-07-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/main.cc (showUsage): Added 3 usage examples for metalink download. Replace MetalinkChunkChecksum with ChunkChecksum. * src/MetalinkChunkChecksum.h: Removed. * src/MetalinkEntry.h: MetalinkChunkChecksum -> ChunkChecksum. * src/Xml2MetalinkProcessor.h: MetalinkChunkChecksum -> ChunkChecksum. * src/Xml2MetalinkProcessor.cc (getPieceHash): Use ChunkChecksum instead of MetalinkChunkChecksum. * src/MetalinkRequestInfo.cc (execute) |
|
![]() |
e36a3de0f4 |
2007-06-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made -S option work with metalink file and provided selective download to metalink. * src/MetalinkEntry.h, src/MetalinkEntry.cc (filename): Removed. (file): New variable. (size): Removed. (operator=): Updated. (getPath): New function. (getLength): New function. (toFileEntry): New function. * src/TorrentRequestInfo.h, src/TorrentRequestInfo.cc (execute): Use toStream. (showFileEntry): Removed. * src/MetalinkRequestInfo.h (targetFiles): New variable. (setTargetFiles): New variable. * src/MetalinkRequestInfo.cc (execute): Added the ability to print file information included in a metalink file. Added selective download mode to metalink. * src/main.cc (showUsage): Updated to denote that -S and --select-file options are applicable to metalink. * src/FileEntry.h (operator=): New function. (getBasename): New function. (getDirname): New function. * src/Util.h, src/Util.cc (toStream): New function. * src/Xml2MetalinkProcessor.cc: Updated. Made aria2 work with metalink with directory structure. * src/File.h, src/File.cc (getBasename): New function. (getDirname): New function. * src/RequestGroup.h, src/RequestGroup.cc (_topDir): New variable. (setTopDir): New function. (initSegmentMan): A directory structure is added to _segmentMan->dir. Rewrote HTTP header parsing with stringstream. * src/HttpConnection.h, src/HttpConnection.cc (HttpRequestEntry): New class. (headerBuf): Removed. (headerBufLength): Removed. (outstandingHttpRequests): Now its element type is HttpRequestEntryHandle. (findEndOfHeader): Removed. (receiveResponse): Rewritten. Updated doc for -j option to notice that it should be used with -i option. * src/main.cc (showUsage) Removed unused classes. * src/RequestInfo.h (FileInfo): Removed. (checksum): Removed. (fileInfo): Removed. (setChecksum): Removed. (getChecksum): Removed. (getFileInfo): Removed. Use ISO units. * src/ConsoleDownloadEngine.cc * src/TorrentConsoleDownloadEngine.cc * src/Util.cc (abbrevSize) |
|
![]() |
ccdd5b31a3 |
2007-06-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* 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. |
|
![]() |
cd91e2ea4f |
2007-01-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/Xml2MetalinkProcessor.h (xpathExists): New function. * src/Xml2MetalinkProcessor.cc (xpathExists): New function. Not to send HEAD request if filename and size are available in Metalink file: * src/UrlRequestInfo.h (filename): New variable. (totalLength): New variable. (setTotalLength): New function. (setFilename): New function. * src/MetalinkRequestInfo.cc (execute): Set filename and size to UrlRequestInfo. * src/MetalinkEntry.cc (MetalinkEntry): Initialize size with 0. * src/UrlRequestInfo.cc (execute): Set filename and size to SegmentMan. Not to download rest of the files after selected files are downloaded in BitTorrent: * src/PieceStorage.h (allDownloadFinished): New function. * src/DefaultBtAnnounce.cc (isCompleteAnnounceReady): Use allDownloadFinished instead of downloadFinished. (getAnnounceUrl): Use allDownloadFinished instead of downloadFinished. * src/DefaultPieceStorage.cc (completePiece): Use allDownloadFinished instead of downloadFinished. Commented out the call to finishSelectiveDownloadingMode(). (downloadFinished): Call isFilteredAllBitSet() instead of isAllBitSet(). (allDownloadFinished): New function. * src/DefaultBtInteractive.cc (addBitfieldMessageToQueue): Call allDownloadFinished() instead of downloadFinished(). (checkHave): Call allDownloadFinished() instead of downloadFinished(). * src/TorrentDownloadEngine.cc (onEndOfRun): Call allDownloadFinished() instead of downloadFinished(). * src/BitfieldMan.h (isFilteredAllBitSet): New function. * src/ShareRatioSeedCriteria.h (PieceStorage.h): New include. (pieceStorage): New variable. (evaluate): btContext->getTotalLength() -> pieceStorage->getCompletedLength() * src/BitfieldMan.cc (isFilteredAllBitSet): New function. (isAllBitSet): Filter is not took into account. Rename --force-truncate as --allow-overwrite: * src/TorrentRequestInfo.cc (execute): PREF_FORCE_TRUNCATE -> PREF_ALLOW_OVERWRITE * src/main.cc (showUsage): --force-truncate -> --allow-overwrite * src/message.h (EX_FILE_ALREADY_EXISTS): --force-truncate -> --allow-overwrite * src/prefs.h (PREF_FORCE_TRUNCATE): Removed. (PREF_ALLOW_OVERWRITE): New definition. * src/SegmentMan.cc (shouldCancelDownloadForSafety): --force-truncate -> --allow-overwrite * src/MetalinkRequestInfo.cc (execute): Queueing message are now logged in info level. * src/common.h (LONG_LONG_MAX): Removed. (LONG_LONG_MIN): Removed. * src/HttpResponseCommand.cc (handleDefaultEncoding): LONG_LONG_MAX -> INT64_MAX * src/FtpNegotiateCommand.cc (recvSize): LONG_LONG_MAX -> INT64_MAX * src/main.cc (showUsage): Added --check-integiry and --realtime-chunk-checksum command-line option. (main): Added --check-integiry and --realtime-chunk-checksum command-line option. --force-truncate -> --allow-overwrite Set initial value of --check-integrity option to false. Don't show usage when error occurs while persing command-line options. Removed deprecated --upload-limit option. |
|
![]() |
cd9e35bc63 |
2007-01-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/message.h: Added EX_INVALID_PAYLOAD_SIZE and EX_INVALID_BT_MESSAGE_ID. Following source files affected. * src/BtAllowedFastMessage.cc: * src/BtBitfieldMessage.cc * src/BtCancelMessage.cc * src/BtChokeMessage.cc * src/BtHaveAllMessage.cc * src/BtHaveMessage.cc * src/BtHaveNoneMessage.cc * src/BtInterestedMessage.cc * src/BtNotInterestedMessage.cc * src/BtPieceMessage.cc * src/BtPortMessage.cc * src/BtRejectMessage.cc * src/BtRequestMessage.cc * src/BtSuggestPieceMessage.cc * src/BtUnchokeMessage.cc * src/message.h: Added EX_INVALID_CHUNK_CHECKSUM. Following source files are affected. * src/ChunkChecksumValidator.cc * src/SegmentMan.cc |
|
![]() |
ea6d9493c8 |
2007-01-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To add chunk checksum validation: * src/MetalinkEntry.h (MetalinkChunkChecksum.h): New include. (chunkChecksum): New variable. * src/Request.h (method): New variable. (setMethod): New function. (getMethod): New function. (METHOD_GET): New static constant. (METHOD_HEAD): New static constant. * src/Xml2MetalinkProcessor.h (getPieceHash): New function. * src/PieceStorage.h (markAllPiecesDone): New function. (checkIntegrity): New function. * src/FileAllocator.h (NullFileAllocationMonitor.h): New include. (FileAllocator): Initialize fileAllocationMonitor with new NullFileAllocationMonitor(). * src/MultiDiskAdaptor.h (messageDigest.h): Remove include. (ctx): Removed. (hashUpdate): Added ctx. (MultiDiskAdaptor): Removed ctx. (sha1Sum): Renamed as messageDigest. (messageDigest): New function. * src/UrlRequestInfo.h (HeadResult): New class. (digestAlgo): New variable. (chunkChecksumLength): New variable. (chunkChecksums): New variable. (getHeadResult): New function. (UrlRequestInfo): Added digestAlgo, chunkChecksumLength. (setDigestAlgo): New function. (setChunkChecksumLength): New function. (setChunkChecksums): New function. * src/DefaultPieceStorage.cc (DiskAdaptorWriter.h): New include. (ChunkChecksumValidator.h): New include. (markAllPiecesDone): New function. (checkIntegrity): New function. * src/DefaultBtContext.h (getPieceHashes): New function. * src/TorrentRequestInfo.cc (execute): Try to validate chunk checksum if file already exists and .aria2 file doesn't there and user allows aria2 to overwrite it. * src/messageDigest.h (~MessageDigestContext): Added digestFree(). * src/MetalinkRequestInfo.cc (execute): Set digestAlgo, chunkChecksum, chunkChecksums to reqInfo. * src/DiskAdaptor.h (messageDigest.h): New include. (sha1Sum): Renamed as messageDigest. (messageDigest): New function. * src/DownloadCommand.h (PeerStat.h): New include. (maxDownloadSpeedLimit): New variable. (startupIdleTime): New variable. (lowestDownloadSpeedLimit): New variable. (peerStat): New variable. (setMaxDownloadSpeedLimit): New function. (setStartupIdleTime): New function. (setLowestDownloadSPeedLimit): New function. * src/BtContext.h (getPieceHashes): New function. * src/main.cc (main): Set PREF_REALTIME_CHUNK_CHECKSUM and PREF_CHECK_INTEGRITY option to true for testing purpose. * src/BtPieceMessage.cc (checkPieceHash): Use messageDigest * src/DownloadEngine.cc (SetDescriptor): Removed. (AccumulateActiveCommand): Removed. (waitData): Rewritten. (updateFdSet): Rewritten. * src/MultiDiskAdaptor.cc (hashUpdate): Added ctx. (sha1Sum): Renamed as messageDigest. (messageDigest): New function. * src/BitfieldMan.h (isBitRangeSet): New function. (unsetBitRange): New function. * src/ByteArrayDiskWriter.h (sha1Sum): Renamed as messageDigest. (messageDigest): New function. * src/ConsoleDownloadEngine.cc (calculateStatistics): If nspeed < 0 then set nspeed to 0. * src/DiskWriter.h (messageDigest.h): New include. (sha1Sum): Renamed as messageDigest. (messageDigest): New function. * src/ChunkChecksumValidator.h: New class. * src/DiskAdaptorWriter.h: New class. * src/prefs.h (PREF_REALTIME_CHUNK_CHECKSUM): New definition. (PREF_CHECK_INTEGRITY): New definition. * src/HttpResponseCommand.cc (handleDefaultEncoding): Added method "HEAD" handling. Removed the call to e->segmentMan->shouldCancelDownloadForSafety(). (handleOtherEncoding): Added the call to e->segmentMan->shouldCancelDownloadForSafety(). (createHttpDownloadCommand): Set maxDownloadSpeedLimit, startupIdleTime, lowestDownloadSpeedLimit to command. * src/SegmentMan.h (getSegmentEntryByIndex): New function. (getSegmentEntryByCuid): New function. (getSegmentEntryIteratorByCuid): New function. (diskWriter): DiskWriter -> DiskWriterHandle (pieceHashes): New variable. (chunkHashLength): New variable. (digestAlgo): New variable. (FindPeerStat): Removed. (getPeerStat): Rewritten. (markAllPiecesDone): New function. (checkIntegrity): New function. (tryChunkChecksumValidation): New function. (isChunkChecksumValidationReady): New function. * src/BitfieldMan.cc (BitfieldMan): Initialized bitfieldLength, blocks to 0. (BitfieldMan): Initialized blockLength, totalLength, bitfieldLength, blocks to 0. (isBitRangeSet): New function. (unsetBitRange): New function. * src/FtpNegotiateCommand.cc (executeInternal): Set maxDownloadSpeedLimit, startupIdleTime, lowestDownloadSpeedLimit to command. (recvSize): Added method "HEAD" handling. Removed the call to e->segmentMan->shouldCancelDownloadForSafety(). * src/AbstractSingleDiskAdaptor.cc (sha1Sum): Renamed as messageDigest. (messageDigest): New function. * src/AbstractSingleDiskAdaptor.h (sha1Sum): Renamed as messageDigest. (messageDigest): New function. * src/Util.h (indexRange): New function. * src/MetalinkEntry.cc (MetalinkEntry): Initialized chunkChecksum to 0. * src/ShaVisitor.cc (~ShaVisitor): Removed the call to ctx.digestFree(). * src/SegmentMan.cc (ChunkChecksumValidator.h): New include. (SegmentMan): Initialized chunkHashLength to 0. Initialized digestAlgo to DIGEST_ALGO_SHA1. (~SegmentMan): Removed diskWriter. (FindSegmentEntryByIndex): Removed. (FindSegmentEntryByCuid): Removed. (checkoutSegment): Rewritten. (findSlowerSegmentEntry): Rewritten. (getSegment): Rewritten. (updateSegment): Rewritten. (completeSegment): Rewritten. (markAllPiecesDone): New function. (checkIntegrity): New function. (isChunkChecksumValidationReady): New function. (tryChunkChecksumValidation): New function. * src/Xml2MetalinkProcessor.cc (getEntry): Get size and set it to entry. Get chunk checksum and set it to entry. (getPieceHash): New function. * src/Util.cc (sha1Sum): Removed ctx.digestFree() (fileChecksum): Removed ctx.digestFree() (indexRange): New function. * src/Request.cc (METHOD_GET): New variable. (METHOD_HEAD): New variable. (Request): Added method. * src/UrlRequestInfo.cc (FatalException.h): New include. (message.h): New include. (operator<<): Added operator<< for class HeadResult. (getHeadResult): New function. (execute): Get filename and size in separate download engine. * src/ChunkChecksumValidator.cc: New class. * src/DownloadCommand.cc: (DownloadCommand): Added peerStat. (executeInternal): Use maxDownloadSpeedLimit member instead of getting the value from Option. The buffer size is now 16KB. Use peerStat member instead of getting it from SegmentMan. Use startupIdleTime member instead of gettingit from Option. Added chunk checksum validation. * src/AbstractDiskWriter.cc (AbstractDiskWriter): Removed ctx. (~AbstractDiskWriter): Removed ctx.digestFree() (writeDataInternal): Returns the return value of write. (readDataInternal): Returns the return value of read. (sha1Sum): Renamed as messageDigest (messageDigest): New function. * src/AbstractDiwkWriter.h (messageDigest.h): Removed include. (ctx): Removed. (sha1Sum): Renamed as messageDigest (messageDigest): New function. * src/DefaultPieceStorage.h (markAllPiecesDone): New function. (checkIntegrity): New function. * src/NullFileAllocationMonitor.h: New class. |
|
![]() |
8d0ef717e1 |
2006-11-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To add Metalink location option: * src/MetalinkRequestInfo.cc (execute): Call MetalinkEntry::setLocationPreference() * src/main.cc (showUsage): Added the help message for --metalink-location option. (main): Added --metalink-location option. * src/prefs.h (PREF_METALINK_LOCATION): New definition. * src/MetalinkEntry.cc (AddLocationPreference): New function object. (setLocationPreference): New function. * src/Xml2MetalinkProcessor.cc (getResource): Set location attribute to MetalinkResource To show URLs to download * src/UrlRequestInfo.h (printUrls): New function. To add multiple <file> Metalink support: * src/MetalinkEntry.h (MetalinkResources): Removed. (setLocationPreference): New function. (MetalinkEntryHandle): New type definition. (MetalinkEntries): New type definition. * src/Xml2MetalinkProcessor.h (getEntry): MetalinkEntry* -> MetalinkEntryHandle (getResource): MetalinkResource* -> MetalinkResourceHandle (parseFile): Metalinker* -> MetalinkerHandle * src/UrlRequestInfo.h (execute): RequestInfo* -> RequestInfos * src/MetalinkRequestInfo.cc (AccumulateNonP2PUrl): MetalinkResource* -> MetalinkResourceHandle (FindBitTorrentUrl): MetalinkResource* -> MetalinkResourceHandle (execute): RequestInfo* -> RequestInfos Added multiple <file> support. Print filename when it is queued. * src/MetalinkRequestInfo.h (execute): RequestInfo* -> RequestInfos (getDownloadEngine): Removed. * src/RequestInfo.h (RequestInfoHandle): New type definition. (RequestInfos): New type definition. (execute): RequestInfo* -> RequestInfos (getDownloadEngine): Removed. * src/MetalinkResource.h (MetalinkResourceHandle): New type definition. (MetalinkResources): New type definition. * src/MetalinkEntry.cc (~MetalinkEntry): Removed the deletion of the elements of resources, because the element is now of type MetalinkResourceHandle. (PrefOrder): MetalinkResource* -> MetalinkResourceHandle (Supported): MetalinkResource* -> MetalinkResourceHandle (dropUnsupportedResource): Removed the deletion of the elements of resources because the element is now of type MetalinkResourceHandle. * src/Xml2MetalinkProcessor.cc (parseFile): Metalinker* -> MetalinkerHandle MetalinkEntry* -> MetalinkEntryHandle Removed try-catch block. (getEntry): MetalinkEntry* -> MetalinkEntryHandle MetalinkResource* -> MetalinkResourceHandle Removed try-catch block. (getResource): MetalinkResource* -> MetalinkResourceHandle Free result by using xmlXPathFreeObject() * src/Metalinker.cc (~Metalinker): Removed the deletion of entries. MetalinkEntry* -> MetalinkEntryHandle (queryEntry): Add multiple <file> Metalink support. * src/Metalinker.h (MetalinkEntries): Removed. (queryEntry): MetalinkEntry* -> MetalinkEntries * src/MetalinkProcessor.h (parseFile): Metalinker* -> MetalinkerHandle Bug fixes: * src/PeerChokeCommand.cc (execute): cat01->cat02 * src/DefaultPieceStorage.cc (DefaultPieceStorage): Added diskAdaptor(0) * src/TrackerWatcherComand.cc: (execute): Use btAnnounce->noMoreAnnounce() to determin whether the function returns true or not. * src/TrackerUpdateCommand.cc: (execute): Use btAnnounce->noMoreAnnounce() to determin whether the function returns true or not. * src/FtpConnection.cc (bulkReceiveResponse): Throw DlRetryEx if EOF got. This is the fix of the busy loop bug. * src/DownloadCommand.cc (DownloadCommand): Reuse PeerStat. segmentMan->getPeerStat() returns cached PeerStat. The value of "name" entry in torrent file is now set by *DiskAdaptor::setTopDir(...) methods. * src/MultiDiskAdaptor.h (topDir): New variable. (setTopDir): New function. (getTopDir): New function. * src/MultiDiskAdaptor.cc (getFilePath): Concat storDir, "/" and topDir. (mkdir): Use getFilePath() to get the directory path for output. * src/DefaultPieceStorage.cc (initStorage): Set the value of "name" entry to MultiDiskAdaptor, CopyDiskAdaptor. * src/CopyDiskAdaptor.h (topDir): New variable. (setTopDir): New function. (getTopDir): New function. * src/CopyDiskAdaptor.cc (fixFilename): Updated. Misc * src/UrlRequestInfo.h (e): Removed. (UrlRequestInfo): Removed e. (getDownloadEngine): Removed. * src/UrlRequestInfo.cc (handler): Rewritten. (printUrls): New function. (execute): Call printUrls(). * src/HandshakeMessage.cc (check): peerinteraction->getBtContext() -> btContext * src/PeerInteraction.h (getBtContext): Removed. * src/TorrentRequestInfo.h (execute): RequestInfo* -> RequestInfos (getDownloadEngine): Removed. * src/TorrentRequestInfo.cc (haltRequested): Removed. (btHaltRequested): New variable. (torrentHandler): haltRequested -> btHaltRequested (execute): RequestInfo* -> RequestInfos * src/TorrentConsoleDownloadEngine.cc (afterEachIteration): haltRequested -> btHaltRequested. * src/ConsoleDownloadEngine.h (initStatistics): Added virtual. (calculateStatistics): Added virtual. (onEndOfRun): Added virtual. (afterEachIteration): Added virtual. * src/ConsoleDownloadEngine.cc (haltRequested): New variable. (afterEachIteration): New function. * src/main.cc (requestInfo): Removed. * src/SegmentMan.cc (findSlowerSegmentEntry): Refactored. |
|
![]() |
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. |
|
![]() |
58dbaafc85 |
2006-08-08 Tatsuhiro Tsujikawa <tujikawa@rednoah.com>
* src/FtpNegotiateCommand.cc (recvGreeting): Call disableWriteCheckSocket just after socket->setBlockingMode(). This avoids unnecessary CPU-hog loop. 2006-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> * src/PeerChokeCommand.h (PeerChokeCommand): Rearranged the arguments. * src/PeerChokeCommand.cc (PeerChokeCommand): Rearranged the arguments. * src/MetalinkEntry.h (Checksum.h): Included. (md5): Removed. (sha1): Removed. (checksum): New variable. (operator=): Updated. (check): Removed. * src/prefs.h (PREF_LOWEST_SPEED_LIMIT): New definition. (PREF_FOLLOW_TORRENT): New definition. (PREF_SELECT_FILE): New definition. (PREF_FOLLOW_METALINK): New definition. * src/MetalinkResource.h (TYPE_HTTPS): Added to enum TYPE. * src/TorrentMan.cc (~TorrentMan): Rewritten. * src/MultiDiskWriter.cc (MultiDiskAdaptor): Updated according to the changes in MessageDigestContext. (~MultiDiskAdaptor): Updated according to the changes in MessageDigestContext. (hashUpdate): Updated according to the changes in MessageDigestContext. (sha1Sum): Updated according to the changes in MessageDigestContext. * src/Util.h (fileChecksum): Updated according to the changes in MessageDigestContext. * src/Util.cc (sha1Sum): Updated according to the changes in MessageDigestContext. (fileChecksum): Updated according to the changes in MessageDigestContext. * src/messageDigest.h: Rewritten. * src/MetalinkEntry.cc (check): Removed. (Supported): Updated. (dropUnsupportedResource): Fixed a memory leak. * src/ShaVisitor.cc (ShaVisitor): Updated according to the changes in MessageDigestContext. (~ShaVisitor): Updated according to the changes in MessageDigestContext. (visit): Updated according to the changes in MessageDigestContext. * src/main.cc (main): Rewritten the portion of download loop. --lowest-speed-limit command-line option added. * src/DownloadEngine.h (SocketEntry): New class. (SocketEntries): New definition. (PairFind): Removed. (SockCmdMap): Removed. * src/DownloadEngine.cc (DownloadEngine): Rewritten. (~DownloadEngine): Rewritten. (run): Renamed activeCommandUuids as activeUuids. (SetDescriptor): Rewritten. (AccumulateActiveCommandUuid): Removed. (AccumulateActiveUuid): New function object. (waitData): Rewritten. (updateFdSet): Rewritten. (addSocket): Rewritten. (deleteSocket): Rewritten. (addSocketForReadCheck): Rewritten. (deleteSocketForReadCheck): Rewritten. (addSocketForWriteCheck): Rewritten. (deleteSocketForWriteCheck): Rewritten. * src/Xml2MetalinkProcessor.cc (getEntry): Rewritten the portion of MetalinkEntry creation. * src/DownloadCommand.cc (executeInternal): Added the check routine for lowest speed limit. * src/AbstractDiskWriter.cc (AbstractDiskWriter): Updated according to the changes in MessageDigestContext. (~AbstractDiskWriter): Updated according to the changes in MessageDigestContext. (sha1Sum): Updated according to the changes in MessageDigestContext. * src/RequestInfo.h: New class. * src/UrlRequestInfo.h: New class. * src/UrlRequestInfo.cc: New class. * src/TorrentRequestInfo.h: New class. * src/TorrentRequestInfo.cc: New class. * src/MetalinkRequestInfo.h: New class. * src/MetalinkRequestInfo.cc: New class. * src/Checksum.h: New class. * src/DownloadEngineFactory.h: New class. * src/DownloadEngineFactory.cc: New class. |
|
![]() |
ba4e5b776b |
2006-07-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/PeerMessage.h (Piece.h): Included. (SharedHandle.h): Included. (invalidate): New variable. (uploading): New variable. (isInvalidate): New function. (isUploading): New function. (onPush): New function. (onChoked): New function. (onCanceled): New function. (onAbortPiece): New function. (PeerMessageHandle): New type definition. * src/PeerMessage.cc (PeerMessage): Added the initialization for invalidate and uploading. * src/CancelMessage.h (CancelMessage): Rewritten. * src/RejectMessage.h (RejectMessage): Rewritten. * src/Metalinker.h (operator=): Defined. * src/MetaEntry.h (operator=): Defined. * src/MetalinkResource.h (operator=): Defined. * src/AllowedFastMessage.h (AllowedFastMessage): Rewritten. * src/HandshakeMessage.h (HandshakeMessage): New function(overload). * src/HandshakeMessage.cc (HandshakeMessage): Rewritten. (init): New function. * src/HaveMessage.h (HaveMessage): Rewritten. * src/Time.h (operator=): Defined the function body here. * src/Time.cc (operator=): Removed. * src/SocketCore.h (operator==): Defined here. (operator!=): Defined here. (operator<): Defined here. * src/SocketCore.cc (operator==): Removed. (operator<): Removed. * src/BitfieldMan.h (operator=): Defined the function body here. * src/BitfieldMan.cc (operator=): Removed. * src/TorrentMan.h (deleteErrorPeer): Removed. (deleteUnusedPeer); New function. * src/TorrentMan.cc (addPeer): Call deleteUnusedPeer. (deleteErrorPeer): Removed. (deleteUnusedPeer): New function. * src/PeerAbstractCommand.h (setNoCheck): New function. (noCheck): New variable. * src/PeerAbstractCommand.cc (PeerAbstractCommand): Added the initialization of noCheck. (execute): Added a check for noCheck. (setNoCheck): New function. * src/Util.h (stdio.h): Included. * src/Util.cc (unistd.h): Included. * src/DefaultDiskWriter.cc (unistd.h): Included. * src/Peer.h (operator==): Defined the function body here. (operator!=): Defined the function body here. * src/Peer.cc (operator==): Removed. (operator!=): Removed. * src/Piece.h (Piece): Defined the function body here(copy constructor). (operator=): Defined the function body here. (operator==): Defined the function body here. * src/Piece.cc (Piece): Removed(copy constructor). (operator=): Removed. (operator==): Removed. * src/PeerMessageUtil.h (ChokeMessage.h): Removed. (UnchokeMessage.h): Removed. (InterestedMessage.h): Removed. (NotInterestedMessage.h): Removed. (HaveMessage.h): Removed. (BitfieldMessage.h): Removed. (RequestMessage.h): Removed. (CancelMessage.h): Removed. (PieceMessage.h): Removed. (HandshakeMessage.h): Removed. (KeepAliveMessage.h): Removed. (PortMessage.h): Removed. (HaveAllMessage.h): Removed. (HaveNoneMessage.h): Removed. (PeerConnection.h): Removed. (HandshakeMessage.h): Included. * src/BitfieldMessage.h (init): New function. (BitfieldMessage): Rewritten. (BitfieldMessage): New function(overload). * src/RequestSlot.h (operator=): Defined the function body here. (operator==): Defined the function body here. * src/RequestSlot.cc (operator=): Removed. (operator==): Removed. To remove the dependency on the PeerMessage subclass from PeerInteraction: * src/PeerMessageFactory.h: New class. * src/PeerMessageFactory.cc: New class. * src/SimplePeerMessage.cc (send): If invalidate is true then do nothing. * src/PeerInteractionCommand.cc (HandshakeMessage.h): Included. (KeepAliveMessage.h): Included. (ChokeMessage.h): Included. (UnchokeMessage.h): Included. (HaveMessage.h): Included. (executeInternal): Call setNoCheck(). Removed setWriteCheckSocket(socket). * src/PeerInteraction.h (ChokeMessage.h): Removed. (UnchokeMessage.h): Removed. (InterestedMessage.h): Removed. (NotInterestedMessage.h): Removed. (HaveMessage.h): Removed. (BitfieldMessage.h): Removed. (RequestMessage.h): Removed. (CancelMessage.h): Removed. (PieceMessage.h): Removed. (HandshakeMessage.h): Removed. (KeepAliveMessage.h): Removed. (PortMessage.h): Removed. (HaveAllMessage.h): Removed. (HaveNoneMessage.h): Removed. (RejectMessage.h): Removed. (AllowedFastMessage.h): Removed. (SuggestPieceMessage.h): Removed. (PeerMessageFactory.h): Included. (PeerMessageHandle): Removed typedef of PeerMessageHandle. (HandshakeMessageHandle): Removed typedef of HandshakeMessageHandle. (PeerMessageFactory): New variable. (createPeerMessage): Removed. (createHandshakeMessage): Removed. (setPeerMessageCommonProperty): Removed. (addRequestSlot): New function. (receiveHandshake): Changed the return value type to PeerMessageHandle. (getPeerMessageFactory): New function. (createRequestMessage): Removed. (createCancelMessage): Removed. (createPieceMessage): Removed. (createHaveMessage): Removed. (createChokeMessage): Removed. (createUnchokeMessage): Removed. (createInterestedMessage): Removed. (createNotInterestedMessage): Removed. (createBitfieldMessage): Removed. (createKeepAliveMessage): Removed. (createHaveAllMessage): Removed. (createHaveNoneMessage): Removed. (createRejectMessage): Removed. (createAllowedFastMessage): Removed. * src/PeerInteraction.cc (PeerInteraction): Allocate PeerMessageFactory here. (~PeerInteraction): Deallocate PeerMessageFactory here. (sendMessages): Use msg->isUploading() instead of msg->getId() == PieceMessage::ID. (addMessage): Simplified by using PeerMessage::onPush(). (addRequestSlot): New function. (rejectAllPieceMessageInQueue): Simplified by using PeerMessage::onChoked(). (rejectPieceMessageInQueue): Simplified by using PeerMessage::onCanceled(). (abortPiece): Simplified by using PeerMessage::abortPiece(). (receiveHandshake): Changed the return value type to PeerMessageHandle. (createHandshakeMessage): Removed. (createPeerMessage): Removed. (sendHandshake): Call PeerMessageFactory::createHandshakeMessage(). (setPeerMessageCommonProperty): Removed. (createRequestMessage): Removed. (createCancelMessage): Removed. (createPieceMessage): Removed. (createHaveMessage): Removed. (createChokeMessage): Removed. (createUnchokeMessage): Removed. (createInterestedMessage): Removed. (createNotInterestedMessage): Removed. (createBitfieldMessage): Removed. (createKeepAliveMessage): Removed. (createHaveAllMessage): Removed. (createHaveNoneMessage): Removed. (createRejectMessage): Removed. (createAllowedFastMessage): Removed. * src/PieceMessage.h (createRejectMessage): New function. (PieceMessage): Rewritten. (onChoked): New function. (onCanceled): New function. * src/PieceMessage.cc (send): If invalidate is true then do nothing, just return. (createRejectMessage): New function. (onChoked): New function. (onCanceled): New function. * src/RequestMessage.h (RequestMessage): Rewritten. (onPush): New function. (onAbortPiece): New function. * src/RequestMessage.cc (onPush): New function. (onAbortPiece): New function. Update fd_set when a socket is added or deleted in order to improve performance: * src/DownloadEngine.h (rfdset): New variable. (wfdset): New variable. (updateFdSet): New function. * src/DownloadEngine.cc (SetDescriptor::operator()): Use SockCmdMap::value_type. (AccumulateActiveCommandUuid::operator()): Use SockCmdMap::value_type. (waitData): Copy rfdset and wfdset. (updateFdSet): New function. (addSocket): Call updateFdSet. (deleteSocket): Call updateFdSet. |
|
![]() |
78eff23254 |
2006-07-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To add Metalink support(http/ftp only): * src/AbstractCommand.h (tryReserved): New function. * src/AbstractCommand.cc (execute): Call tryReserved(). (tryReserved): New function. * src/Request.h (Requests): New type definition. * src/SegmentMan.h (reserved): New variable. * src/Util.h (fileChecksum): New function. (toUpper): New function. (toLower): New function. * src/Util.cc (messageDigest.h): Included. (trim): Trim \r\n\t. (fileChecksum): New function. (toUpper): New function. (toLower): New function. * src/main.cc (normalDownload): New function. (main): Added 2 command-line options: metalink-file, metalink-connection. Their usage has not been written yet. * src/MetalinkProcessor.h: New class. * src/Xml2MetalinkProcessor.h: New class. * src/Xml2MetalinkProcessor.cc: New class. * src/MetalinkEntry.h: New class. * src/MetalinkEntry.cc: New class. * src/MetalinkResource.h: New class. * src/MetalinkResource.cc: New class. To add md5 message digest checking: * src/messageDigest.h: Rewritten. * src/MultiDiskWriter.cc: Updated according to the changes in messageDigest.h. * src/ShaVisitor.cc: Updated according to the changes in messageDigest.h. * src/Util.cc: Updated according to the changes in messageDigest.h. * src/AbstractDiskWriter.cc: Updated according to the changes in messageDigest.h. To fix a bug that causes segfault when the payload length in peer message is less than 0: * src/PeerConnection.cc: (receiveMessage): Fixed the bug. * src/PeerMessageUtil.cc (checkLength): Throw an exception if length is less than or equals to 0. To add new interfaces to Base64 encoding/decoding: * src/Base64.h (part_encode): Changed the method signature. (encode): New function(overload). (decode): New function(overload). * src/Base64.cc (part_encode): Rewritten. (encode): Rewritten. (encode): New function(overload). To prevent a peer to download same piece if there is an error in checksum: * src/PieceMessage.cc (receivedAction): Call peerInteraction->abortPiece(). |