fw: properly handle consumer retransmission in AsfStrategy
Do not reject an existing PIT entry if there are no
next hops during consumer retransmission
refs: #4874
Change-Id: Iea8602897e99fdf2f6fd0226b5eb74bd7a4bced1
diff --git a/tests/daemon/fw/topology-tester.cpp b/tests/daemon/fw/topology-tester.cpp
index 0e19b57..50d3de5 100644
--- a/tests/daemon/fw/topology-tester.cpp
+++ b/tests/daemon/fw/topology-tester.cpp
@@ -252,13 +252,23 @@
}
void
-TopologyTester::addEchoProducer(ndn::Face& face, const Name& prefix)
+TopologyTester::addEchoProducer(ndn::Face& face, const Name& prefix, time::nanoseconds replyDelay)
{
- face.setInterestFilter(prefix,
- [&face] (const auto&, const Interest& interest) {
- auto data = makeData(interest.getName());
+ BOOST_ASSERT(replyDelay >= 0_ns);
+
+ face.setInterestFilter(prefix, [=, &face] (const auto&, const auto& interest) {
+ auto data = makeData(interest.getName());
+ if (replyDelay == 0_ns) {
+ // reply immediately
+ face.put(*data);
+ }
+ else {
+ // delay the reply
+ getScheduler().schedule(replyDelay, [&face, data = std::move(data)] {
face.put(*data);
});
+ }
+ });
}
void