Quellcode durchsuchen

2008-09-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>

	Merged from trunk -r693:695

	DEFAULT_ANNOUNCE_INTERVAL: unsigned int -> time_t
	* src/BtAnnounce.h

	If an error occurred with a URI, remove identical URI from 
remaining
	URI list because it is likely that same error occurred in the 
end and it
	is waste of time.
	* src/AbstractCommand.cc
	* src/RequestGroup.cc
	* src/RequestGroup.h
Tatsuhiro Tsujikawa vor 17 Jahren
Ursprung
Commit
18581f4a73
5 geänderte Dateien mit 23 neuen und 1 gelöschten Zeilen
  1. 14 0
      ChangeLog
  2. 1 0
      src/AbstractCommand.cc
  3. 1 1
      src/BtAnnounce.h
  4. 5 0
      src/RequestGroup.cc
  5. 2 0
      src/RequestGroup.h

+ 14 - 0
ChangeLog

@@ -1,3 +1,17 @@
+2008-09-03  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
+
+	Merged from trunk -r693:695
+
+	DEFAULT_ANNOUNCE_INTERVAL: unsigned int -> time_t
+	* src/BtAnnounce.h
+
+	If an error occurred with a URI, remove identical URI from remaining
+	URI list because it is likely that same error occurred in the end and it
+	is waste of time.
+	* src/AbstractCommand.cc
+	* src/RequestGroup.cc
+	* src/RequestGroup.h
+
 2008-09-03  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 
 	Added -lrt to LIBCARES_LIBS if -lrt is needed to link program with

+ 1 - 0
src/AbstractCommand.cc

@@ -201,6 +201,7 @@ void AbstractCommand::onAbort() {
   if(!_requestGroup->getPieceStorage().isNull()) {
     _requestGroup->getSegmentMan()->cancelSegment(cuid);
   }
+  _requestGroup->removeIdenticalURI(req->getUrl());
 }
 
 void AbstractCommand::disableReadCheckSocket() {

+ 1 - 1
src/BtAnnounce.h

@@ -123,7 +123,7 @@ public:
 
   static const std::string PEERS;
 
-  static const unsigned int DEFAULT_ANNOUNCE_INTERVAL = 120;
+  static const time_t DEFAULT_ANNOUNCE_INTERVAL = 120;
 };
 
 typedef SharedHandle<BtAnnounce> BtAnnounceHandle;

+ 5 - 0
src/RequestGroup.cc

@@ -957,6 +957,11 @@ void RequestGroup::removeURIWhoseHostnameIs(const std::string& hostname)
   _uris = newURIs;
 }
 
+void RequestGroup::removeIdenticalURI(const std::string& uri)
+{
+  _uris.erase(std::remove(_uris.begin(), _uris.end(), uri), _uris.end());
+}
+
 void RequestGroup::reportDownloadFinished()
 {
   _logger->notice(MSG_FILE_DOWNLOAD_COMPLETED,

+ 2 - 0
src/RequestGroup.h

@@ -339,6 +339,8 @@ public:
   
   void removeURIWhoseHostnameIs(const std::string& hostname);
 
+  void removeIdenticalURI(const std::string& uri);
+
   void reportDownloadFinished();
 
   const std::deque<std::string>& getAcceptFeatures() const;