X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=conf-parser.c;h=2cf90f2defa1ff8dec0ae4d5c7aad47d433baecd;hp=8883d9ed6871191633e7dc77580b746b028f7af3;hb=09477267f6b353ab607be55e59d2924187d401c4;hpb=3251df7dd7e88571108c1dc8a6c9f66cf891321b diff --git a/conf-parser.c b/conf-parser.c index 8883d9ed6..2cf90f2de 100644 --- a/conf-parser.c +++ b/conf-parser.c @@ -32,7 +32,6 @@ #include "log.h" #define COMMENTS "#;\n" -#define NEWLINES "\n\r" #define LINE_MAX 4096 /* Run the user supplied parser for an assignment */ @@ -64,7 +63,10 @@ static int next_assignment( return t->parse(filename, line, section, lvalue, rvalue, t->data, userdata); } - log_info("[%s:%u] Unknown lvalue '%s' in section '%s'. Ignoring.", filename, line, lvalue, strna(section)); + /* Warn about unknown non-extension fields. */ + if (!startswith(lvalue, "X-")) + log_info("[%s:%u] Unknown lvalue '%s' in section '%s'. Ignoring.", filename, line, lvalue, strna(section)); + return 0; } @@ -109,6 +111,7 @@ static int parse_line(const char *filename, unsigned line, char **section, const return -ENOMEM; if (sections && !strv_contains((char**) sections, n)) { + log_error("[%s:%u] Unknown section '%s'.", filename, line, n); free(n); return -EBADMSG; } @@ -371,6 +374,8 @@ int config_parse_strv( if (*sv) for (k = 0; (*sv)[k]; k++) n[k] = (*sv)[k]; + else + k = 0; FOREACH_WORD_QUOTED(w, l, rvalue, state) if (!(n[k++] = strndup(w, l)))