Selaa lähdekoodia

2009-11-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Logged received nodes in get_peers reply message.
	* src/DHTAbstractNodeLookupTask.cc
	* src/DHTAbstractNodeLookupTask.h
Tatsuhiro Tsujikawa 16 vuotta sitten
vanhempi
commit
f794df7d9b
3 muutettua tiedostoa jossa 23 lisäystä ja 13 poistoa
  1. 6 0
      ChangeLog
  2. 16 13
      src/DHTAbstractNodeLookupTask.cc
  3. 1 0
      src/DHTAbstractNodeLookupTask.h

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+2009-11-02  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Logged received nodes in get_peers reply message.
+	* src/DHTAbstractNodeLookupTask.cc
+	* src/DHTAbstractNodeLookupTask.h
+
 2009-11-01  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Fixed the bug that DHTAbstractNodeLookupTask never finishes if

+ 16 - 13
src/DHTAbstractNodeLookupTask.cc

@@ -66,11 +66,14 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa
   toEntries(newEntries, nodes);
 
   size_t count = 0;
-  for(std::deque<SharedHandle<DHTNodeLookupEntry> >::const_iterator i = newEntries.begin();
-      i != newEntries.end(); ++i) {
+  for(std::deque<SharedHandle<DHTNodeLookupEntry> >::const_iterator i =
+	newEntries.begin(); i != newEntries.end(); ++i) {
     if(memcmp(_localNode->getID(), (*i)->_node->getID(), DHT_ID_LENGTH) != 0) {
       _entries.push_front(*i);
       ++count;
+      _logger->debug("Received nodes: id=%s, ip=%s",
+		     util::toHex((*i)->_node->getID(), DHT_ID_LENGTH).c_str(),
+		     (*i)->_node->getIPAddress().c_str());
     }
   }
 
@@ -81,16 +84,7 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa
   if(_entries.size() > DHTBucket::K) {
     _entries.erase(_entries.begin()+DHTBucket::K, _entries.end());
   }
-  if(needsAdditionalOutgoingMessage()) {
-    sendMessage();
-  }
-  if(_inFlightMessage == 0) {
-    _logger->debug("Finished node_lookup for node ID %s",
-		   util::toHex(_targetID, DHT_ID_LENGTH).c_str());
-    onFinish();
-    updateBucket();
-    _finished = true;
-  }
+  sendMessageAndCheckFinish();
 }
 
 void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
@@ -104,6 +98,11 @@ void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
       break;
     }
   }
+  sendMessageAndCheckFinish();
+}
+
+void DHTAbstractNodeLookupTask::sendMessageAndCheckFinish()
+{
   if(needsAdditionalOutgoingMessage()) {
     sendMessage();
   }
@@ -113,7 +112,11 @@ void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
     onFinish();
     updateBucket();
     _finished = true;
-  }  
+  } else {
+    _logger->debug("%d in flight message for node ID %s",
+		   _inFlightMessage,
+		   util::toHex(_targetID, DHT_ID_LENGTH).c_str());
+  }
 }
 
 void DHTAbstractNodeLookupTask::sendMessage()

+ 1 - 0
src/DHTAbstractNodeLookupTask.h

@@ -61,6 +61,7 @@ protected:
 
   void updateBucket();
 
+  void sendMessageAndCheckFinish();
 public:
   DHTAbstractNodeLookupTask(const unsigned char* targetID);