summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2018-01-23 12:39:09 +1300
committerRobert Ancell <robert.ancell@canonical.com>2018-01-23 12:39:09 +1300
commit8c134bd0985dc529bc6b2676b0a7c884675bbe42 (patch)
treebb86f87d3fb79aabb9fa5cc054a8a41bbb4acc36
parentcb2eb6039baf64eefca8b17206e822e250a021b0 (diff)
downloadlightdm-git-8c134bd0985dc529bc6b2676b0a7c884675bbe42.tar.gz
Fix incorrect use of ConsoleKit CanSuspend/Hibernate API
-rw-r--r--liblightdm-gobject/power.c16
-rw-r--r--tests/src/test-runner.c8
2 files changed, 16 insertions, 8 deletions
diff --git a/liblightdm-gobject/power.c b/liblightdm-gobject/power.c
index 75407f1a..e2073ad9 100644
--- a/liblightdm-gobject/power.c
+++ b/liblightdm-gobject/power.c
@@ -129,9 +129,13 @@ lightdm_get_can_suspend (void)
}
if (!r)
{
+ const gchar *result;
r = ck_call_function ("CanSuspend", NULL, NULL);
- if (r && g_variant_is_of_type (r, G_VARIANT_TYPE ("(b)")))
- g_variant_get (r, "(b)", &can_suspend);
+ if (r && g_variant_is_of_type (r, G_VARIANT_TYPE ("(s)")))
+ {
+ g_variant_get (r, "(&s)", &result);
+ can_suspend = g_strcmp0 (result, "yes") == 0;
+ }
}
if (!r)
{
@@ -195,9 +199,13 @@ lightdm_get_can_hibernate (void)
}
if (!r)
{
+ const gchar *result;
r = ck_call_function ("CanHibernate", NULL, NULL);
- if (r && g_variant_is_of_type (r, G_VARIANT_TYPE ("(b)")))
- g_variant_get (r, "(b)", &can_hibernate);
+ if (r && g_variant_is_of_type (r, G_VARIANT_TYPE ("(s)")))
+ {
+ g_variant_get (r, "(&s)", &result);
+ can_hibernate = g_strcmp0 (result, "yes") == 0;
+ }
}
if (!r)
{
diff --git a/tests/src/test-runner.c b/tests/src/test-runner.c
index 290cc8b0..99af1c7d 100644
--- a/tests/src/test-runner.c
+++ b/tests/src/test-runner.c
@@ -1290,12 +1290,12 @@ handle_ck_call (GDBusConnection *connection,
else if (strcmp (method_name, "CanSuspend") == 0)
{
check_status ("CONSOLE-KIT CAN-SUSPEND");
- g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", TRUE));
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "yes"));
}
else if (strcmp (method_name, "CanHibernate") == 0)
{
check_status ("CONSOLE-KIT CAN-HIBERNATE");
- g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", TRUE));
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "yes"));
}
else if (strcmp (method_name, "CloseSession") == 0)
g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", TRUE));
@@ -1367,10 +1367,10 @@ ck_name_acquired_cb (GDBusConnection *connection,
" <arg name='can_stop' direction='out' type='b'/>"
" </method>"
" <method name='CanSuspend'>"
- " <arg name='can_suspend' direction='out' type='b'/>"
+ " <arg name='can_suspend' direction='out' type='s'/>"
" </method>"
" <method name='CanHibernate'>"
- " <arg name='can_hibernate' direction='out' type='b'/>"
+ " <arg name='can_hibernate' direction='out' type='s'/>"
" </method>"
" <method name='CloseSession'>"
" <arg name='cookie' direction='in' type='s'/>"