diff --git a/lib/packagekit-glib/pk-control.c b/lib/packagekit-glib/pk-control.c index d0bbd47..ae4a975 100644 --- a/lib/packagekit-glib/pk-control.c +++ b/lib/packagekit-glib/pk-control.c @@ -317,6 +317,41 @@ out: } /** + * pk_control_suggest_daemon_quit: + * @control: a valid #PkControl instance + * @error: a %GError to put the error code and message in, or %NULL + * + * Return value: if the call was made successfully + **/ +gboolean +pk_control_suggest_daemon_quit (PkControl *control, GError **error) +{ + gboolean ret; + GError *error_local = NULL; + + g_return_val_if_fail (PK_IS_CONTROL (control), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + /* check to see if we have a valid proxy */ + if (control->priv->proxy == NULL) { + egg_warning ("No proxy for manager"); + return FALSE; + } + ret = dbus_g_proxy_call (control->priv->proxy, "SuggestDaemonQuit", &error_local, + G_TYPE_INVALID, + G_TYPE_INVALID); + if (!ret) { + /* abort as the DBUS method failed */ + egg_warning ("SuggestDaemonQuit failed :%s", error_local->message); + pk_control_error_set (error, PK_CONTROL_ERROR_FAILED, error_local->message); + g_error_free (error_local); + return FALSE; + } + + return TRUE; +} + +/** * pk_control_get_network_state: * @control: a valid #PkControl instance * @error: a %GError to put the error code and message in, or %NULL diff --git a/lib/packagekit-glib/pk-control.h b/lib/packagekit-glib/pk-control.h index a14603d..fe8a687 100644 --- a/lib/packagekit-glib/pk-control.h +++ b/lib/packagekit-glib/pk-control.h @@ -108,6 +108,8 @@ gchar **pk_control_get_mime_types (PkControl *control, GError **error); PkNetworkEnum pk_control_get_network_state (PkControl *control, GError **error); +gboolean pk_control_suggest_daemon_quit (PkControl *control, + GError **error); gboolean pk_control_get_backend_detail (PkControl *control, gchar **name, gchar **author,