From 5741a9a323cd09d38a9fdfe5a643459e077abdff Mon Sep 17 00:00:00 2001 From: ckie Date: Sat, 10 Dec 2022 23:33:37 +0200 Subject: [PATCH] logid: Fail on invalid Configurations NixOS will soon have a runtime test for logiops which uses an invalid configuration as a baseline, expecting it to fail. Silent errors are not nice for users; systemd does not inform users of stderr messages in nominally running services. https://github.com/NixOS/nixpkgs/pull/167388 --- src/logid/Configuration.cpp | 4 ++-- src/logid/logid.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/logid/Configuration.cpp b/src/logid/Configuration.cpp index a5fad09..c582c54 100644 --- a/src/logid/Configuration.cpp +++ b/src/logid/Configuration.cpp @@ -34,11 +34,11 @@ Configuration::Configuration(const std::string& config_file) } catch(const FileIOException &e) { logPrintf(ERROR, "I/O Error while reading %s: %s", config_file.c_str(), e.what()); - throw e; + exit(EXIT_FAILURE); } catch(const ParseException &e) { logPrintf(ERROR, "Parse error in %s, line %d: %s", e.getFile(), e.getLine(), e.getError()); - throw e; + exit(EXIT_FAILURE); } const Setting &root = _config.getRoot(); diff --git a/src/logid/logid.cpp b/src/logid/logid.cpp index ddb77ec..72d2d3d 100644 --- a/src/logid/logid.cpp +++ b/src/logid/logid.cpp @@ -168,7 +168,8 @@ int main(int argc, char** argv) global_config = std::make_shared(options.config_file); } catch (std::exception &e) { - global_config = std::make_shared(); + logPrintf(ERROR, "%s", e.what()); + return EXIT_FAILURE; } global_workqueue = std::make_shared( global_config->workerCount());