shared/install: failing with -ELOOP can be due to the use of an alias in install_error()
authorFranck Bui <fbui@suse.com>
Tue, 24 Sep 2019 16:54:15 +0000 (18:54 +0200)
committerFranck Bui <fbui@suse.com>
Tue, 24 Sep 2019 17:05:06 +0000 (19:05 +0200)
-ELOOP can happen also when enabling an alias name (which is admittedly useless
since the unit it belongs to was already enabled) so let's mention this
possibility when reporting the corresponding error.

src/core/dbus-manager.c

index 035011e..98d2e82 100644 (file)
@@ -1903,11 +1903,13 @@ static int install_error(
 
                 case -ELOOP:
                         r = sd_bus_error_setf(error, BUS_ERROR_UNIT_LINKED,
-                                              "Refusing to operate on linked unit file %s", changes[i].path);
+                                              "Refusing to operate on alias name or linked unit file: %s",
+                                              changes[i].path);
                         goto found;
 
                 case -ENOENT:
-                        r = sd_bus_error_setf(error, BUS_ERROR_NO_SUCH_UNIT, "Unit file %s does not exist.", changes[i].path);
+                        r = sd_bus_error_setf(error, BUS_ERROR_NO_SUCH_UNIT,
+                                              "Unit file %s does not exist.", changes[i].path);
                         goto found;
 
                 default: