From ad80f1b357b706ef48016f5c1214ce4d87613caa Mon Sep 17 00:00:00 2001
From: almalh <almalh@proton.me>
Date: Sun, 5 Mar 2023 19:58:46 -0500
Subject: [PATCH] Handle case where a command line flag is not allowed in the
 config file

---
 src/daemon/main.cpp | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/daemon/main.cpp b/src/daemon/main.cpp
index 73d9ebce1..1d4baaa32 100644
--- a/src/daemon/main.cpp
+++ b/src/daemon/main.cpp
@@ -219,6 +219,19 @@ int main(int argc, char const * argv[])
       {
         po::store(po::parse_config_file<char>(config_path.string<std::string>().c_str(), core_settings), vm);
       }
+      catch (const po::unknown_option &e)
+      {
+        std::string unrecognized_option = e.get_option_name();
+        if (all_options.find_nothrow(unrecognized_option, false))
+        {
+          std::cerr << "Option '" << unrecognized_option << "' is not allowed in the config file, please use it as a command line flag." << std::endl;
+        }
+        else
+        {
+          std::cerr << "Unrecognized option '" << unrecognized_option << "' in config file." << std::endl;
+        }
+        return 1;
+      }
       catch (const std::exception &e)
       {
         // log system isn't initialized yet