From fdcb1bce7b16f69c4d63451816e2c7f824d090b4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Pavl=C3=ADn?= Date: Fri, 17 May 2013 14:03:36 +0000 Subject: [PATCH] systemctl: mangle names when avoiding dbus Unit names were mangled in function enable_unit only when dbus was used. This patch adds mangling also when the dbus is not in use. This makes it possible to say e.g.: systemctl --root=/path enable cups without spelling cups.service out in full. --- src/systemctl/systemctl.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 0c39c94a3..d935249dd 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -4244,33 +4244,37 @@ static int enable_unit(DBusConnection *bus, char **args) { _cleanup_dbus_error_free_ DBusError error; _cleanup_strv_free_ char **mangled_names = NULL; - dbus_error_init(&error); + if (!args[1]) + return 0; + + r = mangle_names(args+1, &mangled_names); + if (r < 0) + goto finish; r = enable_sysv_units(args); if (r < 0) return r; - if (!args[1]) - return 0; + dbus_error_init(&error); if (!bus || avoid_bus()) { if (streq(verb, "enable")) { - r = unit_file_enable(arg_scope, arg_runtime, arg_root, args+1, arg_force, &changes, &n_changes); + r = unit_file_enable(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes); carries_install_info = r; } else if (streq(verb, "disable")) - r = unit_file_disable(arg_scope, arg_runtime, arg_root, args+1, &changes, &n_changes); + r = unit_file_disable(arg_scope, arg_runtime, arg_root, mangled_names, &changes, &n_changes); else if (streq(verb, "reenable")) { - r = unit_file_reenable(arg_scope, arg_runtime, arg_root, args+1, arg_force, &changes, &n_changes); + r = unit_file_reenable(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes); carries_install_info = r; } else if (streq(verb, "link")) - r = unit_file_link(arg_scope, arg_runtime, arg_root, args+1, arg_force, &changes, &n_changes); + r = unit_file_link(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes); else if (streq(verb, "preset")) { - r = unit_file_preset(arg_scope, arg_runtime, arg_root, args+1, arg_force, &changes, &n_changes); + r = unit_file_preset(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes); carries_install_info = r; } else if (streq(verb, "mask")) - r = unit_file_mask(arg_scope, arg_runtime, arg_root, args+1, arg_force, &changes, &n_changes); + r = unit_file_mask(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes); else if (streq(verb, "unmask")) - r = unit_file_unmask(arg_scope, arg_runtime, arg_root, args+1, &changes, &n_changes); + r = unit_file_unmask(arg_scope, arg_runtime, arg_root, mangled_names, &changes, &n_changes); else assert_not_reached("Unknown verb"); @@ -4329,10 +4333,6 @@ static int enable_unit(DBusConnection *bus, char **args) { dbus_message_iter_init_append(m, &iter); - r = mangle_names(args+1, &mangled_names); - if(r < 0) - goto finish; - r = bus_append_strv_iter(&iter, mangled_names); if (r < 0) { log_error("Failed to append unit files."); -- 2.39.5