forked from pool/systemd
6a0f5a9e55
- fix file list of systemd.pc OBS-URL: https://build.opensuse.org/request/show/235044 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=188
74 lines
2.8 KiB
Diff
74 lines
2.8 KiB
Diff
From 342aea195051633c69ba7b8c02c82a0e5f8cbde4 Mon Sep 17 00:00:00 2001
|
|
From: Michael Marineau <michael.marineau@coreos.com>
|
|
Date: Fri, 16 May 2014 16:58:31 -0700
|
|
Subject: [PATCH] conf-parser: silently ignore sections starting with "X-"
|
|
|
|
This allows external tools to keep additional unit information in a
|
|
separate section without scaring users with a big warning.
|
|
---
|
|
src/shared/conf-parser.c | 9 +++++++--
|
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
|
|
|
diff --git src/shared/conf-parser.c src/shared/conf-parser.c
|
|
index d27b1b7..062b15b 100644
|
|
--- src/shared/conf-parser.c
|
|
+++ src/shared/conf-parser.c
|
|
@@ -204,6 +204,7 @@ static int parse_line(const char* unit,
|
|
bool allow_include,
|
|
char **section,
|
|
unsigned *section_line,
|
|
+ bool *section_ignored,
|
|
char *l,
|
|
void *userdata) {
|
|
|
|
@@ -266,7 +267,7 @@ static int parse_line(const char* unit,
|
|
|
|
if (sections && !nulstr_contains(sections, n)) {
|
|
|
|
- if (!relaxed)
|
|
+ if (!relaxed && !startswith(n, "X-"))
|
|
log_syntax(unit, LOG_WARNING, filename, line, EINVAL,
|
|
"Unknown section '%s'. Ignoring.", n);
|
|
|
|
@@ -274,10 +275,12 @@ static int parse_line(const char* unit,
|
|
free(*section);
|
|
*section = NULL;
|
|
*section_line = 0;
|
|
+ *section_ignored = true;
|
|
} else {
|
|
free(*section);
|
|
*section = n;
|
|
*section_line = line;
|
|
+ *section_ignored = false;
|
|
}
|
|
|
|
return 0;
|
|
@@ -285,7 +288,7 @@ static int parse_line(const char* unit,
|
|
|
|
if (sections && !*section) {
|
|
|
|
- if (!relaxed)
|
|
+ if (!relaxed && !*section_ignored)
|
|
log_syntax(unit, LOG_WARNING, filename, line, EINVAL,
|
|
"Assignment outside of section. Ignoring.");
|
|
|
|
@@ -328,6 +331,7 @@ int config_parse(const char *unit,
|
|
_cleanup_free_ char *section = NULL, *continuation = NULL;
|
|
_cleanup_fclose_ FILE *ours = NULL;
|
|
unsigned line = 0, section_line = 0;
|
|
+ bool section_ignored = false;
|
|
int r;
|
|
|
|
assert(filename);
|
|
@@ -399,6 +403,7 @@ int config_parse(const char *unit,
|
|
allow_include,
|
|
§ion,
|
|
§ion_line,
|
|
+ §ion_ignored,
|
|
p,
|
|
userdata);
|
|
free(c);
|
|
--
|
|
1.7.9.2
|
|
|