Skip to content

Commit 055f66f

Browse files
committed
Backport parse_bool
1 parent 2a33626 commit 055f66f

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/share/conf-parser.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,3 +479,35 @@ int config_parse_string(
479479

480480
return 0;
481481
}
482+
483+
int config_parse_bool(
484+
const char* unit,
485+
const char *filename,
486+
unsigned line,
487+
const char *section,
488+
unsigned section_line,
489+
const char *lvalue,
490+
int ltype,
491+
const char *rvalue,
492+
void *data,
493+
void *userdata) {
494+
495+
bool fatal = ltype;
496+
bool *b = data;
497+
int k;
498+
499+
assert(filename);
500+
assert(lvalue);
501+
assert(rvalue);
502+
503+
k = parse_boolean(rvalue);
504+
if (k < 0) {
505+
log_syntax(unit, fatal ? LOG_ERR : LOG_WARNING, filename, line, k,
506+
"Failed to parse boolean value%s: %s",
507+
fatal ? "" : ", ignoring", rvalue);
508+
return fatal ? -ENOEXEC : 0;
509+
}
510+
511+
*b = k;
512+
return 0;
513+
}

src/share/conf-parser.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ int config_parse_many(const char *conf_file, /* possibly NULL */
8888

8989
/* Generic parsers */
9090
int config_parse_string(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
91+
int config_parse_bool(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
9192

9293
#define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \
9394
int function(const char *unit, \

0 commit comments

Comments
 (0)