diff options
Diffstat (limited to 'libnm-glib/nm-dhcp6-config.c')
| -rw-r--r-- | libnm-glib/nm-dhcp6-config.c | 55 |
1 files changed, 16 insertions, 39 deletions
diff --git a/libnm-glib/nm-dhcp6-config.c b/libnm-glib/nm-dhcp6-config.c index 00698ed5..3764cbf0 100644 --- a/libnm-glib/nm-dhcp6-config.c +++ b/libnm-glib/nm-dhcp6-config.c @@ -77,47 +77,38 @@ demarshal_dhcp6_options (NMObject *object, GParamSpec *pspec, GValue *value, gpo } static void -register_for_property_changed (NMDHCP6Config *config) +register_properties (NMDHCP6Config *config) { NMDHCP6ConfigPrivate *priv = NM_DHCP6_CONFIG_GET_PRIVATE (config); - const NMPropertiesChangedInfo property_changed_info[] = { - { NM_DHCP6_CONFIG_OPTIONS, demarshal_dhcp6_options, &priv->options }, + const NMPropertiesInfo property_info[] = { + { NM_DHCP6_CONFIG_OPTIONS, &priv->options, demarshal_dhcp6_options }, { NULL }, }; - _nm_object_handle_properties_changed (NM_OBJECT (config), - priv->proxy, - property_changed_info); + _nm_object_register_properties (NM_OBJECT (config), + priv->proxy, + property_info); } -static GObject* -constructor (GType type, - guint n_construct_params, - GObjectConstructParam *construct_params) +static void +constructed (GObject *object) { - NMObject *object; DBusGConnection *connection; NMDHCP6ConfigPrivate *priv; - object = (NMObject *) G_OBJECT_CLASS (nm_dhcp6_config_parent_class)->constructor (type, - n_construct_params, - construct_params); - if (!object) - return NULL; + G_OBJECT_CLASS (nm_dhcp6_config_parent_class)->constructed (object); priv = NM_DHCP6_CONFIG_GET_PRIVATE (object); priv->options = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); - connection = nm_object_get_connection (object); + connection = nm_object_get_connection (NM_OBJECT (object)); priv->proxy = dbus_g_proxy_new_for_name (connection, NM_DBUS_SERVICE, - nm_object_get_path (object), + nm_object_get_path (NM_OBJECT (object)), NM_DBUS_INTERFACE_DHCP6_CONFIG); - register_for_property_changed (NM_DHCP6_CONFIG (object)); - - return G_OBJECT (object); + register_properties (NM_DHCP6_CONFIG (object)); } static void @@ -159,7 +150,7 @@ nm_dhcp6_config_class_init (NMDHCP6ConfigClass *config_class) g_type_class_add_private (config_class, sizeof (NMDHCP6ConfigPrivate)); /* virtual methods */ - object_class->constructor = constructor; + object_class->constructed = constructed; object_class->get_property = get_property; object_class->finalize = finalize; @@ -212,24 +203,10 @@ nm_dhcp6_config_new (DBusGConnection *connection, const char *object_path) GHashTable * nm_dhcp6_config_get_options (NMDHCP6Config *config) { - NMDHCP6ConfigPrivate *priv = NM_DHCP6_CONFIG_GET_PRIVATE (config); - GValue value = { 0, }; - - if (g_hash_table_size (priv->options)) - return priv->options; - - if (!_nm_object_get_property (NM_OBJECT (config), - NM_DBUS_INTERFACE_DHCP6_CONFIG, - "Options", - &value, - NULL)) - goto out; - - demarshal_dhcp6_options (NM_OBJECT (config), NULL, &value, &priv->options); - g_value_unset (&value); + g_return_val_if_fail (NM_IS_DHCP6_CONFIG (config), NULL); -out: - return priv->options; + _nm_object_ensure_inited (NM_OBJECT (config)); + return NM_DHCP6_CONFIG_GET_PRIVATE (config)->options; } /** |