X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fload-fragment.c;h=eb9861802b21da0ca226f0549d3efa3d509e11b5;hb=6daf4f9001d87da9e92c04ff606b454c209f0951;hp=1685c4adb76734a0d7f21687e55743a5c06e7020;hpb=f976f3f67ce5140dc0ba48e0c21a91a553905c57;p=elogind.git diff --git a/src/load-fragment.c b/src/load-fragment.c index 1685c4adb..eb9861802 100644 --- a/src/load-fragment.c +++ b/src/load-fragment.c @@ -1431,7 +1431,7 @@ static int open_follow(char **filename, FILE **_f, Set *names, char **_final) { * unit name. */ name = file_name_from_path(*filename); - if (unit_name_is_valid(name)) { + if (unit_name_is_valid(name, false)) { if (!(id = set_get(names, name))) { if (!(id = strdup(name))) @@ -1669,7 +1669,8 @@ static int load_from_path(Unit *u, const char *path) { { "TCPWrapName", config_parse_string_printf, &(context).tcpwrap_name, section }, \ { "PAMName", config_parse_string_printf, &(context).pam_name, section }, \ { "KillMode", config_parse_kill_mode, &(context).kill_mode, section }, \ - { "KillSignal", config_parse_kill_signal, &(context).kill_signal, section } + { "KillSignal", config_parse_kill_signal, &(context).kill_signal, section }, \ + { "UtmpIdentifier", config_parse_string_printf, &(context).utmp_id, section } const ConfigItem items[] = { { "Names", config_parse_names, u, "Unit" }, @@ -1883,9 +1884,15 @@ static int load_from_path(Unit *u, const char *path) { goto finish; } - /* Now, parse the file contents */ - if ((r = config_parse(filename, f, sections, items, false, u)) < 0) - goto finish; + if (null_or_empty(&st)) + u->meta.load_state = UNIT_MASKED; + else { + /* Now, parse the file contents */ + if ((r = config_parse(filename, f, sections, items, false, u)) < 0) + goto finish; + + u->meta.load_state = UNIT_LOADED; + } free(u->meta.fragment_path); u->meta.fragment_path = filename; @@ -1893,7 +1900,6 @@ static int load_from_path(Unit *u, const char *path) { u->meta.fragment_mtime = timespec_load(&st.st_mtim); - u->meta.load_state = UNIT_LOADED; r = 0; finish: