diff options
author | Lennart Poettering <lennart@poettering.net> | 2018-06-01 17:46:01 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2018-06-11 12:53:12 +0200 |
commit | c4555ad8f68a9fd0c148c46afd16a81dd5917874 (patch) | |
tree | 1fc1242ffaac7721920d502f8525cdb61f8840c6 /src/basic/unit-def.h | |
parent | man: don't mention "stub" and "merged" unit load states (diff) | |
download | systemd-c4555ad8f68a9fd0c148c46afd16a81dd5917874.tar.xz systemd-c4555ad8f68a9fd0c148c46afd16a81dd5917874.zip |
core: introduce a new load state "bad-setting"
Since bb28e68477a3a39796e4999a6cbc6ac6345a9159 parsing failures of
certain unit file settings will result in load failures of units. This
introduces a new load state "bad-setting" that is entered in precisely
this case.
With this addition error messages on bad settings should be a lot more
explicit, as we don't have to show some generic "errno" error in that
case, but can explicitly say that a bad setting is at fault.
Internally this unit load state is entered as soon as any configuration
loader call returns ENOEXEC. Hence: config parser calls should return
ENOEXEC now for such essential unit file settings. Turns out, they
generally already do.
Fixes: #9107
Diffstat (limited to 'src/basic/unit-def.h')
-rw-r--r-- | src/basic/unit-def.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/basic/unit-def.h b/src/basic/unit-def.h index 503867668b..3f13a1c8f3 100644 --- a/src/basic/unit-def.h +++ b/src/basic/unit-def.h @@ -30,8 +30,9 @@ typedef enum UnitType { typedef enum UnitLoadState { UNIT_STUB = 0, UNIT_LOADED, - UNIT_NOT_FOUND, - UNIT_ERROR, + UNIT_NOT_FOUND, /* error condition #1: unit file not found */ + UNIT_BAD_SETTING, /* error condition #2: we couldn't parse some essential unit file setting */ + UNIT_ERROR, /* error condition #3: other "system" error, catchall for the rest */ UNIT_MERGED, UNIT_MASKED, _UNIT_LOAD_STATE_MAX, |