chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
shared: fix format string for usec_t type
[elogind.git]
/
src
/
shared
/
conf-parser.c
diff --git
a/src/shared/conf-parser.c
b/src/shared/conf-parser.c
index 86435d3bdebd3c87fa42b408a60878c9cce24212..158e9efd4cecb260bb15426379fa468e9c8dfe7b 100644
(file)
--- a/
src/shared/conf-parser.c
+++ b/
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 allow_include,
char **section,
unsigned *section_line,
+ bool *section_ignored,
char *l,
void *userdata) {
char *l,
void *userdata) {
@@
-266,7
+267,7
@@
static int parse_line(const char* unit,
if (sections && !nulstr_contains(sections, n)) {
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);
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;
free(*section);
*section = NULL;
*section_line = 0;
+ *section_ignored = true;
} else {
free(*section);
*section = n;
*section_line = line;
} else {
free(*section);
*section = n;
*section_line = line;
+ *section_ignored = false;
}
return 0;
}
return 0;
@@
-285,7
+288,7
@@
static int parse_line(const char* unit,
if (sections && !*section) {
if (sections && !*section) {
- if (!relaxed)
+ if (!relaxed
&& !*section_ignored
)
log_syntax(unit, LOG_WARNING, filename, line, EINVAL,
"Assignment outside of section. Ignoring.");
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;
_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);
int r;
assert(filename);
@@
-336,8
+340,8
@@
int config_parse(const char *unit,
if (!f) {
f = ours = fopen(filename, "re");
if (!f) {
if (!f) {
f = ours = fopen(filename, "re");
if (!f) {
- log_
error(
"Failed to open configuration file '%s': %m", filename);
- return -errno;
+ log_
full(errno == ENOENT ? LOG_DEBUG : LOG_ERR,
"Failed to open configuration file '%s': %m", filename);
+ return
errno == ENOENT ? 0 :
-errno;
}
}
}
}
@@
-399,6
+403,7
@@
int config_parse(const char *unit,
allow_include,
§ion,
§ion_line,
allow_include,
§ion,
§ion_line,
+ §ion_ignored,
p,
userdata);
free(c);
p,
userdata);
free(c);
@@
-585,7
+590,7
@@
int config_parse_string(
assert(data);
if (!utf8_is_valid(rvalue)) {
assert(data);
if (!utf8_is_valid(rvalue)) {
- log_
syntax(unit, LOG_ERR, filename, line, EINVAL, "String is not UTF-8 clean, ignoring assignment: %s"
, rvalue);
+ log_
invalid_utf8(unit, LOG_ERR, filename, line, EINVAL
, rvalue);
return 0;
}
return 0;
}
@@
-623,7
+628,7
@@
int config_parse_path(
assert(data);
if (!utf8_is_valid(rvalue)) {
assert(data);
if (!utf8_is_valid(rvalue)) {
- log_
syntax(unit, LOG_ERR, filename, line, EINVAL, "Path is not UTF-8 clean, ignoring assignment: %s"
, rvalue);
+ log_
invalid_utf8(unit, LOG_ERR, filename, line, EINVAL
, rvalue);
return 0;
}
return 0;
}
@@
-681,19
+686,18
@@
int config_parse_strv(const char *unit,
}
FOREACH_WORD_QUOTED(w, l, rvalue, state) {
}
FOREACH_WORD_QUOTED(w, l, rvalue, state) {
-
_cleanup_free_
char *n;
+ char *n;
- n =
cunescape_length
(w, l);
+ n =
strndup
(w, l);
if (!n)
return log_oom();
if (!utf8_is_valid(n)) {
if (!n)
return log_oom();
if (!utf8_is_valid(n)) {
- log_syntax(unit, LOG_ERR, filename, line, EINVAL,
- "String is not UTF-8 clean, ignoring: %s", rvalue);
+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue);
continue;
}
continue;
}
- r = strv_
extend
(sv, n);
+ r = strv_
consume
(sv, n);
if (r < 0)
return log_oom();
}
if (r < 0)
return log_oom();
}