mgmt, main: add support for authorized commands
refs: #1227
Change-Id: I907d1fa6e78775470c5376fcdfe898be4c311001
diff --git a/daemon/main.cpp b/daemon/main.cpp
index 541d8ff..e4ead64 100644
--- a/daemon/main.cpp
+++ b/daemon/main.cpp
@@ -12,6 +12,7 @@
#include "mgmt/face-manager.hpp"
#include "mgmt/local-control-header-manager.hpp"
#include "mgmt/strategy-choice-manager.hpp"
+#include "mgmt/config-file.hpp"
#include "face/tcp-factory.hpp"
#ifdef HAVE_UNIX_SOCKETS
@@ -39,6 +40,7 @@
std::pair<std::string, std::string> m_tcpListen;
std::vector<TcpOutgoing> m_tcpOutgoings;
std::string m_unixListen;
+ std::string m_config;
};
static ProgramOptions g_options;
@@ -67,7 +69,8 @@
"[--unix-listen \"/var/run/nfd.sock\"] "
#endif
"[--tcp-connect \"192.0.2.1:6363\" "
- "[--prefix </example>]]\n"
+ "[--prefix </example>]] "
+ "[--config /path/to/nfd.conf]\n"
"\trun forwarding daemon\n"
"\t--tcp-listen <ip:port>: listen on IP and port\n"
#ifdef HAVE_UNIX_SOCKETS
@@ -76,6 +79,7 @@
"\t--tcp-connect <ip:port>: connect to IP and port (can occur multiple times)\n"
"\t--prefix <NDN name>: add this face as nexthop to FIB entry "
"(must appear after --tcp-connect, can occur multiple times)\n"
+ "\t--config <configuration file>]: path to configuration file\n"
"\n",
programName, programName
);
@@ -99,6 +103,7 @@
g_options.m_tcpListen = std::make_pair("0.0.0.0", "6363");
g_options.m_unixListen = "/var/run/nfd.sock";
g_options.m_tcpOutgoings.clear();
+ g_options.m_config = DEFAULT_CONFIG_FILE;
while (1) {
int option_index = 0;
@@ -108,6 +113,7 @@
{ "tcp-connect" , required_argument, 0, 0 },
{ "prefix" , required_argument, 0, 0 },
{ "unix-listen" , required_argument, 0, 0 },
+ { "config" , required_argument, 0, 0 },
{ 0 , 0 , 0, 0 }
};
int c = getopt_long_only(argc, argv, "", long_options, &option_index);
@@ -134,10 +140,14 @@
case 4://unix-listen
g_options.m_unixListen = ::optarg;
break;
+ case 5://config
+ g_options.m_config = ::optarg;
+ break;
}
break;
}
}
+
return true;
}
@@ -206,9 +216,14 @@
void
initializeMgmt()
{
+ ConfigFile config;
+
g_internalFace = make_shared<InternalFace>();
g_forwarder->addFace(g_internalFace);
+ g_internalFace->getValidator().setConfigFile(config);
+
+
g_fibManager = new FibManager(g_forwarder->getFib(),
bind(&Forwarder::getFace, g_forwarder, _1),
g_internalFace);
@@ -222,6 +237,11 @@
g_strategyChoiceManager = new StrategyChoiceManager(g_forwarder->getStrategyChoice(),
g_internalFace);
+ /// \todo add face manager section handler
+
+ /// \todo add parsing back when there is an official default config file
+ // config.parse(g_options.m_config);
+
shared_ptr<fib::Entry> entry = g_forwarder->getFib().insert("/localhost/nfd").first;
entry->addNextHop(g_internalFace, 0);
}