Re: [PATCH] libnm-glib: added service-running property to NMRemoteSettings
- From: Dan Williams <dcbw redhat com>
- To: Witold Sowa <witold sowa gmail com>
- Cc: networkmanager-list gnome org
- Subject: Re: [PATCH] libnm-glib: added service-running property to NMRemoteSettings
- Date: Tue, 22 Sep 2009 23:30:09 -0700
On Wed, 2009-09-02 at 23:54 +0200, Witold Sowa wrote:
> The new readonly boolean property informs if settings service
> is running (i.e. org.freedesktop.NetworkManagerUserSettings or
> org.freedesktop.NetworkManagerSystemSettings name is registered
> in DBus bus).
ac03cbce048724965f07c83150ee57313e723c0e
Spacing fixed up and applied, thanks; seems like the mailer broke it?
Committed in any case.
Dan
> ---
> libnm-glib/nm-remote-settings.c | 35 ++++++++++++++++++++++++++++++++---
> libnm-glib/nm-remote-settings.h | 1 +
> 2 files changed, 33 insertions(+), 3 deletions(-)
>
> diff --git a/libnm-glib/nm-remote-settings.c b/libnm-glib/nm-remote-settings.c
> index 0e928fb..b930ef6 100644
> --- a/libnm-glib/nm-remote-settings.c
> +++ b/libnm-glib/nm-remote-settings.c
> @@ -45,6 +45,7 @@ typedef struct {
> DBusGProxy *proxy;
> GHashTable *connections;
> GHashTable *pending; /* Connections we don't have settings for yet */
> + gboolean service_running;
>
> DBusGProxy *dbus_proxy;
>
> @@ -57,6 +58,7 @@ enum {
> PROP_0,
> PROP_BUS,
> PROP_SCOPE,
> + PROP_SERVICE_RUNNING,
>
> LAST_PROP
> };
> @@ -160,7 +162,7 @@ fetch_connections_done (DBusGProxy *proxy,
> gpointer user_data)
> {
> NMRemoteSettings *self = NM_REMOTE_SETTINGS (user_data);
> - NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self);
> + NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self);
> int i;
>
> if (error) {
> @@ -292,10 +294,15 @@ name_owner_changed (DBusGProxy *proxy,
> if (priv->fetch_id)
> g_source_remove (priv->fetch_id);
>
> - if (new_owner && strlen (new_owner) > 0)
> + if (new_owner && strlen (new_owner) > 0) {
> priv->fetch_id = g_idle_add (fetch_connections, self);
> - else
> + priv->service_running = TRUE;
> + }
> + else {
> priv->fetch_id = g_idle_add (remove_connections, self);
> + priv->service_running = FALSE;
> + }
> + g_object_notify(G_OBJECT (self), NM_REMOTE_SETTINGS_SERVICE_RUNNING);
> }
> }
>
> @@ -347,6 +354,8 @@ constructor (GType type,
> {
> GObject *object;
> NMRemoteSettingsPrivate *priv;
> + GError *err = NULL;
> +
> const char *service = NM_DBUS_SERVICE_USER_SETTINGS;
>
> object = G_OBJECT_CLASS (nm_remote_settings_parent_class)->constructor (type, n_construct_params, construct_params);
> @@ -378,6 +387,15 @@ constructor (GType type,
> if (priv->scope == NM_CONNECTION_SCOPE_SYSTEM)
> service = NM_DBUS_SERVICE_SYSTEM_SETTINGS;
>
> + if (!dbus_g_proxy_call(priv->dbus_proxy, "NameHasOwner", &err,
> + G_TYPE_STRING, service,
> + G_TYPE_INVALID,
> + G_TYPE_BOOLEAN, &priv->service_running,
> + G_TYPE_INVALID)) {
> + g_warning ("Error in NMRemoteSettings constructor: %s\n", err->message);
> + g_error_free (err);
> + }
> +
> priv->proxy = dbus_g_proxy_new_for_name (priv->bus,
> service,
> NM_DBUS_PATH_SETTINGS,
> @@ -456,6 +474,9 @@ get_property (GObject *object, guint prop_id,
> case PROP_SCOPE:
> g_value_set_uint (value, priv->scope);
> break;
> + case PROP_SERVICE_RUNNING:
> + g_value_set_boolean (value, priv->service_running);
> + break;
> default:
> G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
> break;
> @@ -494,6 +515,14 @@ nm_remote_settings_class_init (NMRemoteSettingsClass *class)
> NM_CONNECTION_SCOPE_USER,
> G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
>
> + g_object_class_install_property
> + (object_class, PROP_SERVICE_RUNNING,
> + g_param_spec_boolean (NM_REMOTE_SETTINGS_SERVICE_RUNNING,
> + "Service running",
> + "Is service running",
> + FALSE,
> + G_PARAM_READABLE));
> +
> /* Signals */
> g_signal_new (NM_REMOTE_SETTINGS_CONNECTIONS_FETCHED,
> G_OBJECT_CLASS_TYPE (object_class),
> diff --git a/libnm-glib/nm-remote-settings.h b/libnm-glib/nm-remote-settings.h
> index 05be199..4e97431 100644
> --- a/libnm-glib/nm-remote-settings.h
> +++ b/libnm-glib/nm-remote-settings.h
> @@ -40,6 +40,7 @@ G_BEGIN_DECLS
>
> #define NM_REMOTE_SETTINGS_BUS "bus"
> #define NM_REMOTE_SETTINGS_SCOPE "scope"
> +#define NM_REMOTE_SETTINGS_SERVICE_RUNNING "service-running"
>
> #define NM_REMOTE_SETTINGS_CONNECTIONS_FETCHED "connections-fetched"
>
> --
> 1.6.0.2
> _______________________________________________
> NetworkManager-list mailing list
> NetworkManager-list gnome org
> http://mail.gnome.org/mailman/listinfo/networkmanager-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]