static void do_shutdown_dialog(void) { DBusGProxy* sm_proxy; GError* error; gboolean res; sm_proxy = get_sm_proxy(); if (sm_proxy == NULL) { return; } error = NULL; res = dbus_g_proxy_call(sm_proxy, "Shutdown", &error, G_TYPE_INVALID, G_TYPE_INVALID); if (!res) { if (error != NULL) { g_warning("Failed to call shutdown: %s", error->message); g_error_free(error); } else { g_warning("Failed to call shutdown"); } } if (sm_proxy != NULL) { g_object_unref(sm_proxy); } }
static void set_session_name(const char* session_name) { DBusGProxy* sm_proxy; GError* error; gboolean res; sm_proxy = get_sm_proxy(); if (sm_proxy == NULL) { return; } error = NULL; res = dbus_g_proxy_call(sm_proxy, "SetName", &error, G_TYPE_STRING, session_name, G_TYPE_INVALID, G_TYPE_INVALID); if (!res) { if (error != NULL) { g_warning("Failed to set session name '%s': %s", session_name, error->message); g_error_free(error); } else { g_warning("Failed to set session name '%s'", session_name); } } if (sm_proxy != NULL) { g_object_unref(sm_proxy); } }
static void do_logout(unsigned int mode) { DBusGProxy* sm_proxy; GError* error; gboolean res; sm_proxy = get_sm_proxy(); if (sm_proxy == NULL) { return; } error = NULL; res = dbus_g_proxy_call(sm_proxy, "Logout", &error, G_TYPE_UINT, mode, G_TYPE_INVALID, G_TYPE_INVALID); if (!res) { if (error != NULL) { g_warning("Failed to call logout: %s", error->message); g_error_free(error); } else { g_warning("Failed to call logout"); } } if (sm_proxy != NULL) { g_object_unref(sm_proxy); } }
static void do_power_off (const char *action) { DBusGProxy *sm_proxy; GError *error; gboolean res; sm_proxy = get_sm_proxy (); if (sm_proxy == NULL) { return; } error = NULL; res = dbus_g_proxy_call (sm_proxy, action, &error, G_TYPE_INVALID, G_TYPE_INVALID); if (!res) { if (error != NULL) { g_warning ("Failed to call %s: %s", action, error->message); g_error_free (error); } else { g_warning ("Failed to call %s", action); } } g_clear_object (&sm_proxy); }