publisher: set router-name command prefix correctly

refs: #3651

Change-Id: Ic3771de5161fc482f76df78035dcb9f5325e1a9d
This commit is contained in:
Muktadir R Chowdhury committed 2016-07-21 10:24:15 -05:00
1 parent c778e814db
commit 3ac0728e5a
6 files changed
+41 -12

No files matched your search

+1 -1
View File
@@ -60,7 +60,6 @@ Nlsr::Nlsr(boost::asio::io_service& ioService, ndn::Scheduler& scheduler, ndn::F
, m_helloProtocol(*this, scheduler)
, m_lsdbDatasetHandler(m_nlsrLsdb,
m_nlsrFace,
m_confParam.getRouterPrefix(),
m_keyChain)
, m_certificateCache(new ndn::CertificateCacheTtl(ioService))
, m_validator(m_nlsrFace, DEFAULT_BROADCAST_PREFIX, m_certificateCache, m_certStore)
@@ -179,6 +178,7 @@ Nlsr::initialize()
{
_LOG_DEBUG("Initializing Nlsr");
m_confParam.buildRouterPrefix();
m_lsdbDatasetHandler.setRouterNameCommandPrefix(m_confParam.getRouterPrefix());
m_nlsrLsdb.setLsaRefreshTime(ndn::time::seconds(m_confParam.getLsaRefreshTime()));
m_nlsrLsdb.setThisRouterPrefix(m_confParam.getRouterPrefix().toUri());
m_fib.setEntryRefreshTime(2 * m_confParam.getLsaRefreshTime());
+6
View File
@@ -226,6 +226,12 @@ public:
return m_syncLogicHandler;
}
LsdbDatasetInterestHandler&
getLsdbDatasetHandler()
{
return m_lsdbDatasetHandler;
}
void
initialize();
@@ -37,10 +37,8 @@ const uint32_t LsdbDatasetInterestHandler::ERROR_CODE_UNSUPPORTED_COMMAND = 501;
LsdbDatasetInterestHandler::LsdbDatasetInterestHandler(Lsdb& lsdb,
ndn::Face& face,
const ndn::Name& routerName,
ndn::KeyChain& keyChain)
: LOCALHOST_COMMAND_PREFIX(ndn::Name(Nlsr::LOCALHOST_PREFIX).append(Lsdb::NAME_COMPONENT))
, ROUTER_NAME_COMMAND_PREFIX(ndn::Name(routerName).append(Lsdb::NAME_COMPONENT))
, m_face(face)
, m_keyChain(keyChain)
, m_adjacencyLsaPublisher(lsdb, face, keyChain)
@@ -66,10 +64,10 @@ LsdbDatasetInterestHandler::startListeningOnLocalhost()
void
LsdbDatasetInterestHandler::startListeningOnRouterPrefix()
{
_LOG_DEBUG("Setting interest filter for: " << ROUTER_NAME_COMMAND_PREFIX);
m_face.setInterestFilter(ROUTER_NAME_COMMAND_PREFIX,
_LOG_DEBUG("Setting interest filter for: " << m_routerNameCommandPrefix);
m_face.setInterestFilter(m_routerNameCommandPrefix,
std::bind(&LsdbDatasetInterestHandler::onInterest, this, _2,
std::cref(ROUTER_NAME_COMMAND_PREFIX)));
std::cref(m_routerNameCommandPrefix)));
}
void
@@ -48,7 +48,6 @@ public:
LsdbDatasetInterestHandler(Lsdb& lsdb,
ndn::Face& face,
const ndn::Name& routerName,
ndn::KeyChain& keyChain);
void
@@ -63,10 +62,16 @@ public:
return LOCALHOST_COMMAND_PREFIX;
}
const ndn::Name&
ndn::Name&
getRouterNameCommandPrefix()
{
return ROUTER_NAME_COMMAND_PREFIX;
return m_routerNameCommandPrefix;
}
void
setRouterNameCommandPrefix(const ndn::Name& routerName) {
m_routerNameCommandPrefix = routerName;
m_routerNameCommandPrefix.append(Lsdb::NAME_COMPONENT);
}
private:
@@ -84,7 +89,7 @@ private:
private:
const ndn::Name LOCALHOST_COMMAND_PREFIX;
const ndn::Name ROUTER_NAME_COMMAND_PREFIX;
ndn::Name m_routerNameCommandPrefix;
ndn::Face& m_face;
ndn::KeyChain& m_keyChain;
@@ -81,7 +81,9 @@ BOOST_AUTO_TEST_CASE(Basic)
lsdb.installNameLsa(nameLsa);
ndn::Name thisRouter("/This/Router");
LsdbDatasetInterestHandler publisher(lsdb, *face, thisRouter, keyChain);
LsdbDatasetInterestHandler publisher(lsdb, *face, keyChain);
publisher.setRouterNameCommandPrefix(thisRouter);
publisher.startListeningOnLocalhost();
face->processEvents(ndn::time::milliseconds(10));
@@ -136,7 +138,8 @@ BOOST_AUTO_TEST_CASE(Basic)
BOOST_AUTO_TEST_CASE(InvalidCommand)
{
ndn::Name thisRouter("/This/Router");
LsdbDatasetInterestHandler publisher(lsdb, *face, thisRouter, keyChain);
LsdbDatasetInterestHandler publisher(lsdb, *face, keyChain);
publisher.setRouterNameCommandPrefix(thisRouter);
// Localhost prefix
publisher.startListeningOnLocalhost();
+17
View File
@@ -357,6 +357,23 @@ BOOST_FIXTURE_TEST_CASE(GetCertificate, UnitTestTimeFixture)
BOOST_CHECK(nlsr.getCertificate(certKey) != nullptr);
}
BOOST_FIXTURE_TEST_CASE(SetRouterCommandPrefix, UnitTestTimeFixture)
{
shared_ptr<ndn::util::DummyClientFace> face = make_shared<ndn::util::DummyClientFace>(g_ioService);
Nlsr nlsr(g_ioService, g_scheduler, ndn::ref(*face));
// Simulate loading configuration file
ConfParameter& conf = nlsr.getConfParameter();
conf.setNetwork("/ndn");
conf.setSiteName("/site");
conf.setRouterName("/%C1.router/this-router");
nlsr.initialize();
BOOST_CHECK_EQUAL(nlsr.getLsdbDatasetHandler().getRouterNameCommandPrefix(),
ndn::Name("/ndn/site/%C1.router/this-router/lsdb"));
}
BOOST_AUTO_TEST_SUITE_END()
} //namespace test