From: Michal Schmidt Date: Mon, 13 Jun 2011 12:19:47 +0000 (+0200) Subject: systemctl: fix 'is-enabled' for native units under /lib X-Git-Tag: v29~11 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=b77398f7a05aa313cebcea81e9381833bede2d61 systemctl: fix 'is-enabled' for native units under /lib The units always showed up as enabled. The config file has to be parsed before we can check what's in the [Install] section. https://bugzilla.redhat.com/show_bug.cgi?id=699027 --- diff --git a/src/systemctl.c b/src/systemctl.c index faca79756..889e3ee06 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -4160,6 +4160,13 @@ static int install_info_apply(const char *verb, LookupPaths *paths, InstallInfo return -ENOENT; } + i->path = filename; + + if ((r = config_parse(filename, f, NULL, items, true, i)) < 0) { + fclose(f); + return r; + } + /* Consider unit files stored in /lib and /usr always enabled * if they have no [Install] data. */ if (streq(verb, "is-enabled") && @@ -4168,13 +4175,6 @@ static int install_info_apply(const char *verb, LookupPaths *paths, InstallInfo !path_startswith(filename, "/etc")) return 1; - i->path = filename; - - if ((r = config_parse(filename, f, NULL, items, true, i)) < 0) { - fclose(f); - return r; - } - n_symlinks += strv_length(i->aliases); n_symlinks += strv_length(i->wanted_by);