]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
install: "user" and "global" scopes are equivalent for user presets
authorFranck Bui <fbui@suse.com>
Tue, 22 May 2018 12:22:53 +0000 (14:22 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 23 May 2018 19:08:27 +0000 (21:08 +0200)
Otherwise querying the preset status of a unit to the user instance gives
incorrect results since in this case the scope used by the manager is
UNIT_FILE_USER.

src/shared/install.c

index 550c553117f4838562c007bbf97b023a0dee70bb..424f4ccdbbc1c5bf3b8d8e88d96a5ee882911157 100644 (file)
@@ -2781,7 +2781,8 @@ static int read_presets(UnitFileScope scope, const char *root_dir, Presets *pres
         assert(scope < _UNIT_FILE_SCOPE_MAX);
         assert(presets);
 
-        if (scope == UNIT_FILE_SYSTEM)
+        switch (scope) {
+        case UNIT_FILE_SYSTEM:
                 r = conf_files_list(&files, ".preset", root_dir, 0,
                                     "/etc/systemd/system-preset",
                                     "/run/systemd/system-preset",
@@ -2791,17 +2792,20 @@ static int read_presets(UnitFileScope scope, const char *root_dir, Presets *pres
                                     "/lib/systemd/system-preset",
 #endif
                                     NULL);
-        else if (scope == UNIT_FILE_GLOBAL)
+                break;
+
+        case UNIT_FILE_GLOBAL:
+        case UNIT_FILE_USER:
                 r = conf_files_list(&files, ".preset", root_dir, 0,
                                     "/etc/systemd/user-preset",
                                     "/run/systemd/user-preset",
                                     "/usr/local/lib/systemd/user-preset",
                                     "/usr/lib/systemd/user-preset",
                                     NULL);
-        else {
-                *presets = (Presets){};
+                break;
 
-                return 0;
+        default:
+                assert_not_reached("Invalid unit file scope");
         }
 
         if (r < 0)