summaryrefslogtreecommitdiff
path: root/src/systemctl/systemctl.c
diff options
context:
space:
mode:
authorLukas Nykryn <lnykryn@redhat.com>2013-03-07 16:09:20 +0100
committerLennart Poettering <lennart@poettering.net>2013-03-07 16:25:00 +0100
commitdec49d88d6a4febc8be0a4470183d9794b3b02b8 (patch)
treed41d32d99dcbc931ba27d438d126c35c95765c52 /src/systemctl/systemctl.c
parent78da2cd926937935741ce86bd53c8b546cca6f7a (diff)
systemctl: mangle unit name in is-enabled
https://bugs.freedesktop.org/show_bug.cgi?id=56072 https://bugzilla.redhat.com/show_bug.cgi?id=880353
Diffstat (limited to 'src/systemctl/systemctl.c')
-rw-r--r--src/systemctl/systemctl.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index 99286cfc75..72e9c5539b 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;