From e1435b83f0ca7bde4fb83c41263a047075d9509b Mon Sep 17 00:00:00 2001 From: Michael Goulish Date: Wed, 9 Jan 2013 19:23:36 +0000 Subject: QPID-4518 : disallow unknown args in config file Change EnvOptMapper::configFileLine to take ar arg telling it if it's OK to have unknown args or not. If not, throw upon encountering. From the higher level of run_broker(), there are two passes of arg parsing. In the first pass it's normal to have unknown args, because the loadable modules are not loaded yet. But I change the second parsing to pass down the arg that says "unknowns are not okay." git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1431016 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpidd.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'cpp/src/qpidd.cpp') diff --git a/cpp/src/qpidd.cpp b/cpp/src/qpidd.cpp index 8e0c52f770..e17dea3164 100644 --- a/cpp/src/qpidd.cpp +++ b/cpp/src/qpidd.cpp @@ -82,10 +82,12 @@ int run_broker(int argc, char *argv[], bool hidden) qpid::loadModuleDir (bootOptions.module.loadDir, isDefault); } - // Parse options + // Parse options. In the second pass, do not allow unknown options. + // All the modules have been added now, so any unknown options + // should be flagged as errors. try { options.reset(new QpiddOptions(argv[0])); - options->parse(argc, argv, options->common.config); + options->parse(argc, argv, options->common.config, false); } catch (const std::exception& /*e*/) { if (helpArgSeen) { // provide help even when parsing fails -- cgit v1.2.1