Skip to content

Commit 4c3c19d

Browse files
committed
init: raise on invalid debug/debugexclude config options
1 parent 681ecac commit 4c3c19d

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src/init.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
#include <util/fs.h>
7878
#include <util/fs_helpers.h>
7979
#include <util/moneystr.h>
80+
#include <util/result.h>
8081
#include <util/strencodings.h>
8182
#include <util/string.h>
8283
#include <util/syscall_sandbox.h>
@@ -949,7 +950,8 @@ bool AppInitParameterInteraction(const ArgsManager& args, bool use_syscall_sandb
949950
InitWarning(strprintf(_("Reducing -maxconnections from %d to %d, because of system limitations."), nUserMaxConnections, nMaxConnections));
950951

951952
// ********************************************************* Step 3: parameter-to-internal-flags
952-
init::SetLoggingCategories(args);
953+
auto result = init::SetLoggingCategories(args);
954+
if (!result) return InitError(util::ErrorString(result));
953955
init::SetLoggingLevel(args);
954956

955957
nConnectTimeout = args.GetIntArg("-timeout", DEFAULT_CONNECT_TIMEOUT);

src/init/common.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <tinyformat.h>
1414
#include <util/fs.h>
1515
#include <util/fs_helpers.h>
16+
#include <util/result.h>
1617
#include <util/string.h>
1718
#include <util/time.h>
1819
#include <util/translation.h>
@@ -78,7 +79,7 @@ void SetLoggingLevel(const ArgsManager& args)
7879
}
7980
}
8081

81-
void SetLoggingCategories(const ArgsManager& args)
82+
util::Result<void> SetLoggingCategories(const ArgsManager& args)
8283
{
8384
if (args.IsArgSet("-debug")) {
8485
// Special-case: if -debug=0/-nodebug is set, turn off debugging messages
@@ -88,7 +89,7 @@ void SetLoggingCategories(const ArgsManager& args)
8889
[](std::string cat){return cat == "0" || cat == "none";})) {
8990
for (const auto& cat : categories) {
9091
if (!LogInstance().EnableCategory(cat)) {
91-
InitWarning(strprintf(_("Unsupported logging category %s=%s."), "-debug", cat));
92+
return util::Error{strprintf(_("Unsupported logging category %s=%s."), "-debug", cat)};
9293
}
9394
}
9495
}
@@ -97,9 +98,10 @@ void SetLoggingCategories(const ArgsManager& args)
9798
// Now remove the logging categories which were explicitly excluded
9899
for (const std::string& cat : args.GetArgs("-debugexclude")) {
99100
if (!LogInstance().DisableCategory(cat)) {
100-
InitWarning(strprintf(_("Unsupported logging category %s=%s."), "-debugexclude", cat));
101+
return util::Error{strprintf(_("Unsupported logging category %s=%s."), "-debugexclude", cat)};
101102
}
102103
}
104+
return {};
103105
}
104106

105107
bool StartLogging(const ArgsManager& args)

src/init/common.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88
#ifndef BITCOIN_INIT_COMMON_H
99
#define BITCOIN_INIT_COMMON_H
1010

11+
#include <util/result.h>
12+
1113
class ArgsManager;
1214

1315
namespace init {
1416
void AddLoggingArgs(ArgsManager& args);
1517
void SetLoggingOptions(const ArgsManager& args);
16-
void SetLoggingCategories(const ArgsManager& args);
18+
[[nodiscard]] util::Result<void> SetLoggingCategories(const ArgsManager& args);
1719
void SetLoggingLevel(const ArgsManager& args);
1820
bool StartLogging(const ArgsManager& args);
1921
void LogPackageVersion();

0 commit comments

Comments
 (0)