Blob Blame History Raw
From b77398f7a05aa313cebcea81e9381833bede2d61 Mon Sep 17 00:00:00 2001
From: Michal Schmidt <mschmidt@redhat.com>
Date: Mon, 13 Jun 2011 14:19:47 +0200
Subject: [PATCH] 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
---
 src/systemctl.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/systemctl.c b/src/systemctl.c
index faca797..889e3ee 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);
 
-- 
1.7.4.4