table: prevent duplicates in DeadNonceList
refs #5167
Change-Id: Ia7546f75b844cfa1d857a641b015fbc6e9dfaf3d
diff --git a/daemon/table/dead-nonce-list.cpp b/daemon/table/dead-nonce-list.cpp
index c89e9cc..5226140 100644
--- a/daemon/table/dead-nonce-list.cpp
+++ b/daemon/table/dead-nonce-list.cpp
@@ -91,9 +91,15 @@
DeadNonceList::add(const Name& name, Interest::Nonce nonce)
{
Entry entry = DeadNonceList::makeEntry(name, nonce);
- m_queue.push_back(entry);
- evictEntries();
+ const auto iter = m_ht.find(entry);
+ if (iter != m_ht.end()) {
+ m_queue.relocate(m_queue.end(), m_index.project<0>(iter));
+ }
+ else {
+ m_queue.push_back(entry);
+ evictEntries();
+ }
}
DeadNonceList::Entry