44 const ndn::mgmt::CommandContinuation& done)
46 const auto& castParams =
static_cast<const ndn::nfd::ControlParameters&
>(parameters);
48 ndn::nfd::ControlParameters responseParams(castParams.wireEncode());
49 uint64_t responseFaceId = (castParams.hasFaceId() && castParams.getFaceId() > 0)
50 ? responseParams.getFaceId() : m_defaultResponseFaceId;
51 responseParams.setFaceId(responseFaceId);
53 double castParamCost = (castParams.hasCost() ? castParams.getCost() : 0);
57 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
59 auto [afterAdvertiseReturn, afterAdvertiseMessage] =
afterAdvertise(castParams.getName(), castParamCost);
60 if (afterAdvertiseReturn) {
61 return done(ndn::nfd::ControlResponse(205, afterAdvertiseMessage).setBody(responseParams.wireEncode()));
64 return done(ndn::nfd::ControlResponse(500, afterAdvertiseMessage)
65 .setBody(responseParams.wireEncode()));
68 return done(ndn::nfd::ControlResponse(200,
"OK").setBody(responseParams.wireEncode()));
71 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
73 NLSR_LOG_INFO(
"Saving an already advertised name: " << castParams.getName());
74 auto [afterAdvertiseReturn, afterAdvertiseMessage] =
afterAdvertise(castParams.getName(), castParamCost);
75 if (afterAdvertiseReturn) {
76 return done(ndn::nfd::ControlResponse(205, afterAdvertiseMessage).setBody(responseParams.wireEncode()));
79 return done(ndn::nfd::ControlResponse(500, afterAdvertiseMessage)
80 .setBody(responseParams.wireEncode()));
83 return done(ndn::nfd::ControlResponse(204,
"Prefix is already advertised/inserted.")
84 .setBody(responseParams.wireEncode()));
90 const ndn::mgmt::CommandContinuation& done)
92 const auto& castParams =
static_cast<const ndn::nfd::ControlParameters&
>(parameters);
94 ndn::nfd::ControlParameters responseParams(castParams.wireEncode());
95 uint64_t responseFaceId = (castParams.hasFaceId() && castParams.getFaceId() > 0)
96 ? responseParams.getFaceId() : m_defaultResponseFaceId;
97 responseParams.setFaceId(responseFaceId);
100 NLSR_LOG_INFO(
"Withdrawing/Removing name: " << castParams.getName());
102 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
103 auto [afterWithdrawReturn, afterWithdrawMessage] =
afterWithdraw(castParams.getName());
104 if (afterWithdrawReturn) {
105 return done(ndn::nfd::ControlResponse(205, afterWithdrawMessage).setBody(responseParams.wireEncode()));
108 return done(ndn::nfd::ControlResponse(500, afterWithdrawMessage)
109 .setBody(responseParams.wireEncode()));
112 return done(ndn::nfd::ControlResponse(200,
"OK").setBody(responseParams.wireEncode()));
115 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
117 NLSR_LOG_INFO(
"Deleting an already withdrawn name: " << castParams.getName());
118 auto [afterWithdrawReturn, afterWithdrawMessage] =
afterWithdraw(castParams.getName());
119 if (afterWithdrawReturn) {
120 return done(ndn::nfd::ControlResponse(205, afterWithdrawMessage).setBody(responseParams.wireEncode()));
123 return done(ndn::nfd::ControlResponse(500, afterWithdrawMessage)
124 .setBody(responseParams.wireEncode()));
127 return done(ndn::nfd::ControlResponse(204,
"Prefix is already withdrawn/removed.")
128 .setBody(responseParams.wireEncode()));