summaryrefslogtreecommitdiff
path: root/src/login
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2022-10-12 11:07:57 +0200
committerMichael Biebl <biebl@debian.org>2022-10-12 11:15:27 +0200
commit63168cb517a556b2f4f175b365f5a4b4c7e85150 (patch)
tree89954a4acf872c990611728de91d6a7a4db821d2 /src/login
parent9d4cfc7579cd9a4673ab5433bb7babc821f65627 (diff)
downloadsystemd-63168cb517a556b2f4f175b365f5a4b4c7e85150.tar.gz
logind: fix getting property OnExternalPower via D-Bus
The BUS_DEFINE_PROPERTY_GET_GLOBAL macro requires a value as third argument, so we need to call manager_is_on_external_power(). Otherwise the function pointer is interpreted as a boolean and always returns true: ``` $ busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager OnExternalPower b true $ /lib/systemd/systemd-ac-power --verbose no ``` Thanks: Helmut Grohne <helmut@subdivi.de> Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021644
Diffstat (limited to 'src/login')
-rw-r--r--src/login/logind-dbus.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index 7fc96447d5..86a5decf3f 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -372,7 +372,7 @@ static int property_get_scheduled_shutdown(
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_handle_action, handle_action, HandleAction);
static BUS_DEFINE_PROPERTY_GET(property_get_docked, "b", Manager, manager_is_docked_or_external_displays);
static BUS_DEFINE_PROPERTY_GET(property_get_lid_closed, "b", Manager, manager_is_lid_closed);
-static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_on_external_power, "b", manager_is_on_external_power);
+static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_on_external_power, "b", manager_is_on_external_power());
static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_compat_user_tasks_max, "t", CGROUP_LIMIT_MAX);
static BUS_DEFINE_PROPERTY_GET_REF(property_get_hashmap_size, "t", Hashmap *, (uint64_t) hashmap_size);