[systemd-devel] [PATCH] systemctl: mangle unit name in is-enabled
Lennart Poettering
lennart at poettering.net
Thu Mar 7 07:13:17 PST 2013
On Thu, 07.03.13 16:09, Lukas Nykryn (lnykryn at redhat.com) wrote:
Hmm, don't we need the same for the other unit file verbs such as
enable/disable/mask/unmask, too?
> ---
> src/systemctl/systemctl.c | 19 +++++++++++++++++--
> 1 file changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
> index 99286cf..72e9c55 100644
> --- a/src/systemctl/systemctl.c
> +++ b/src/systemctl/systemctl.c
> @@ -3982,6 +3982,7 @@ static int unit_is_enabled(DBusConnection *bus, char **args) {
> DBusMessage _cleanup_dbus_message_unref_ *reply = NULL;
> bool enabled;
> char **name;
> + char *n;
>
> dbus_error_init(&error);
>
> @@ -3996,7 +3997,14 @@ static int unit_is_enabled(DBusConnection *bus, char **args) {
> STRV_FOREACH(name, args+1) {
> UnitFileState state;
>
> - state = unit_file_get_state(arg_scope, arg_root, *name);
> + n = unit_name_mangle(*name);
> + if (!n)
> + return log_oom();
> +
> + state = unit_file_get_state(arg_scope, arg_root, n);
> +
> + free(n);
> +
> if (state < 0)
> return state;
>
> @@ -4013,6 +4021,10 @@ static int unit_is_enabled(DBusConnection *bus, char **args) {
> STRV_FOREACH(name, args+1) {
> const char *s;
>
> + n = unit_name_mangle(*name);
> + if (!n)
> + return log_oom();
> +
> r = bus_method_call_with_reply (
> bus,
> "org.freedesktop.systemd1",
> @@ -4021,8 +4033,11 @@ static int unit_is_enabled(DBusConnection *bus, char **args) {
> "GetUnitFileState",
> &reply,
> NULL,
> - DBUS_TYPE_STRING, name,
> + DBUS_TYPE_STRING, &n,
> DBUS_TYPE_INVALID);
> +
> + free(n);
> +
> if (r)
> return r;
>
Lennart
--
Lennart Poettering - Red Hat, Inc.
More information about the systemd-devel
mailing list