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

Fixed the bug that DHTAbstractNodeLookupTask never finishes if
	error occurred in DHTMessageDispatcherImpl::sendMessage().
	* src/DHTMessageDispatcherImpl.cc
pull/1/head
Tatsuhiro Tsujikawa 2009-11-01 14:14:28 +00:00
parent 489cfe3d0e
commit f1043306f0
2 changed files with 13 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2009-11-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed the bug that DHTAbstractNodeLookupTask never finishes if
error occurred in DHTMessageDispatcherImpl::sendMessage().
* src/DHTMessageDispatcherImpl.cc
2009-11-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Don't reuse URI if Request pool is not empty.

View File

@ -82,6 +82,13 @@ DHTMessageDispatcherImpl::sendMessage(const SharedHandle<DHTMessageEntry>& entry
}
} catch(RecoverableException& e) {
_logger->error("Failed to send message: %s", e, entry->_message->toString().c_str());
// Add message to DHTMessageTracker with timeout 0 to treat it as
// time out. Without this, we have untracked message and some of
// DHTTask(such as DHTAbstractNodeLookupTask) don't finish
// forever.
if(!entry->_message->isReply()) {
_tracker->addMessage(entry->_message, 0, entry->_callback);
}
}
return true;
}