From 09d9ae135b34bffb705a4a973e44a006d5b78115 Mon Sep 17 00:00:00 2001 From: Jason Dellaluce Date: Thu, 12 Jan 2023 08:45:55 +0000 Subject: [PATCH] update(userspace/falco): load default config at app initialization Signed-off-by: Jason Dellaluce --- userspace/falco/app_actions/init_outputs.cpp | 5 +++++ userspace/falco/app_actions/load_config.cpp | 1 + userspace/falco/application.cpp | 2 ++ 3 files changed, 8 insertions(+) diff --git a/userspace/falco/app_actions/init_outputs.cpp b/userspace/falco/app_actions/init_outputs.cpp index 459499da..3af5aeab 100644 --- a/userspace/falco/app_actions/init_outputs.cpp +++ b/userspace/falco/app_actions/init_outputs.cpp @@ -23,6 +23,11 @@ using namespace falco::app; application::run_result application::init_outputs() { + if (m_state->config->m_outputs.empty()) + { + return run_result::fatal("No outputs configured. Please configure at least one output file output enabled but no filename in configuration block"); + } + // read hostname std::string hostname; char* env_hostname = getenv("FALCO_HOSTNAME"); diff --git a/userspace/falco/app_actions/load_config.cpp b/userspace/falco/app_actions/load_config.cpp index 0982e8cb..2517cfb0 100644 --- a/userspace/falco/app_actions/load_config.cpp +++ b/userspace/falco/app_actions/load_config.cpp @@ -22,6 +22,7 @@ application::run_result application::load_config() { if (!m_options.conf_filename.empty()) { + m_state->config = std::make_shared(); m_state->config->init(m_options.conf_filename, m_options.cmdline_config_options); falco_logger::set_time_format_iso_8601(m_state->config->m_time_format_iso_8601); diff --git a/userspace/falco/application.cpp b/userspace/falco/application.cpp index e20f9e62..4e9fe17d 100644 --- a/userspace/falco/application.cpp +++ b/userspace/falco/application.cpp @@ -159,6 +159,8 @@ bool application::init(int argc, char **argv, std::string &errstr) m_state->cmdline += *arg; } + // initialize default config with cmdline overrides (-o option) + m_state->config->init(m_options.cmdline_config_options); m_initialized = true; return true; }