Commit Graph

12 Commits (1d52ba244ee360a36db245988a797c7fa143c0f5)

Author SHA1 Message Date
Tatsuhiro Tsujikawa 928465b7bc 2006-07-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/TorrentMan.h:
	(advertisePiece): Updated doc.
	(getAdvertisedPieceIndexes): Updated doc.
	(removeAdvertisedPiece); New function.
	
	* src/TorrentMan.cc
	(FindElapsedHave): New function object.
	(removeAdvertisedPiece): New function.

	* src/HaveEraseCommand.h: New class.
	* src/HaveEraseCommand.cc: New class.

	* src/FeatureConfig.h: New class.
	* src/FeatureConfig.cc: New class.
	
	* src/Request.h
	(defaultPorts): Removed.
	* src/Request.cc
	(FeatureConfig.h): Included.
	(Request): Removed the statements related to defaultPorts.
	(parseUrl): Removed metalinkEnabled. Use FeatureConfig instead.
	A default port number is now retrieved from FeatureConfig.
	
	* src/main.cc
	(HaveEraseCommand.h): Included.
	(showVersion): Added the output of feature list.
	(main): Added HaveEraseCommand to command queue in BitTorrent
	downloading.
	
	* src/PeerInteractionCommand.h
	(chokeCheckPoint): Commented out.
	(periodicExecPoint): New variable.
	* src/PeerInteractionCommand.cc
	(executeInternal): Following methods are now called in at least 
every
	0.5 seconds to reduce CPU usage:
	detectMessageFlooding(), peerInteraction->checkRequestSlot(),
	checkHave(), sendKeepAlive().
	(checkLongTimePeerChoking): Commented out.

	* src/BitfieldMan.h
	(getNthBitIndex): Changed the method signature.
	(getMissingIndexRandomly): Changed the method signature.
	* src/BitfieldMan.cc
	(getNthBitIndex): Rewritten
	(getMissingIndexRandomly): Rewritten.
	(hasMissingPiece): Rewritten.
	(getMissingIndex): Refactored.
	(getMissingUnusedIndex); Refactored.
	(getMissingIndex): Refactored.
2006-07-30 12:58:27 +00:00
Tatsuhiro Tsujikawa 7db2b0596d 2006-07-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To add the support for Metalink3.0 backward compatible links:
	
	* src/Request.h
	(SAFE_CHARS): Added '#'.
	(METALINK_MARK): New definition.
	* src/Request.cc
	(parseUrl): Added the support for Metalink3.0 backward 
compatible
	links.

	etc

	* src/PeerInteraction.cc
	(MsgPushBack): Removed.
	(sendMessages): Use STL copy and back_inserter.
	(rejectAllPieceMessageInQueue): Use STL copy and back_inserter.
	(rejectPieceMessageInQueue): Use STL copy and back_inserter.
	* src/TorrentMan.h
	(MAX_PEER_LIST_SIZE): Changed to 100 from 250.
2006-07-20 15:48:12 +00:00
Tatsuhiro Tsujikawa 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().
2006-07-03 14:19:23 +00:00
Tatsuhiro Tsujikawa b1d46227d4 make string type argument const string& where possible 2006-04-19 17:49:03 +00:00
Tatsuhiro Tsujikawa 2065b049ab * Request.h: Added AFTER_COMPLETED event.
* TorrentDownloadEngine.cc: Prints "Download complete" message
	instead of downloaded size and progress(%) after download 
completes.
	* PeerInteractionCommand.cc: After download completes, sends 
unchoke
	message to the peer if it is interested in what localhost has
	downloaded.
	* TorrentMan.cc: In single-file mode, copy temporary file to the 
final
	destination instead of just renaming it.
	* TorrentMan.cc: Added deleteTempFile().
	* PeerAbstractCommand.cc: do not stop execution after download
	completes. This makes localhost a seeder.
	* Util.{h,cc}: Added fileCopy().
	* PeerListenCommand.cc: do not stop execution after download 
completes.
	This makes localhost a seeder.
	* main.cc: Do not call TorrentMan::fixFilename() in 
torrentHandler.
	Added TorrentMan::deleteTempFile() to torrentHandler.
	Initialized the variable dir as ".".
	* TorrentMan.h: Changed DEFAULT_ANNOUNCE_INTERVAL to 120 
seconds.
	Deleted renameSingleFile().
	Added copySingleFile(), deleteTempFile().
	* DownloadEngine.h: Added virtual function afterEachIteration().
	* TorrentDownloadEngine.cc: Move a call to 
TorrentMan::fixFilename()
	in onEndOfRun() to afterEachIteration().
	In onEndOfRun(), changed if condition to check whether 
filenameFixed is
	true.
	* Util.cc: Implemented fileCopy() using rangedFileCopy().
	In rangedFileCopy(), added try-catch block to properly close 
file
	descriptors.
	* TorrentDownloadEngine.cc: Added a member variable 
filenameFixed.
	Added afterEachIteration(), isFilenameFixed().
	* Peer.cc: Changed choking strategy.
	* PreAllocationDiskWriter.cc: Drop O_DIRECT flag.
	* TrackerInitCommand.cc: Send completed event only once.
	* DownloadEngine.cc: Added a call to afterEachIteration().
	* TrackerUpdateCommand.cc: Do not stop execution after download
	completes.
	* TorrentMan.h: Defined MAX_PEER_UPDATE as 15. aria2 attempts to
	connect the peers at most MAX_PEER_UPDATE when a peer list is
	received from a tracker.
	* TrackerUpdateCommand.cc: Implemented above mentioned behavior.
	Decreased the number of failure peers to delete to 0(just 
comment out
	the line).
	* Release 0.3.1
2006-03-24 11:59:18 +00:00
Tatsuhiro Tsujikawa df6c7c0385 added bittorrent support(experimental) 2006-03-21 14:12:51 +00:00
Tatsuhiro Tsujikawa 32e8f2b011 2006-02-21 14:00:58 +00:00
Tatsuhiro Tsujikawa 5a8710676d 2006-02-21 12:27:17 +00:00
Tatsuhiro Tsujikawa 5752a554bf * Added Referer support.
* Added referer command-line option.
	* Added rety-wait command-line option.
	* Fixed formating bug in Exception::setMsg()
2006-02-18 05:13:21 +00:00
Tatsuhiro Tsujikawa 62d3659410 Added Referer support 2006-02-18 03:59:26 +00:00
Tatsuhiro Tsujikawa 2c732211f4 * Added HTTPS support.
* Added SocketCore. Socket is now handle class for SocketCore.
	* Fixed bug in ChunkedEncoding: expanding buffer size is wrong
	* Fixed bug in DownloadCommand: In Chunked Encoding, it wrongly
	adds to Segment.ds buff length from the socket.
2006-02-17 18:51:12 +00:00
Tatsuhiro Tsujikawa 52634627bc Initial import 2006-02-17 13:35:04 +00:00