about summary refs log tree commit diff
path: root/libnm-glib/nm-dhcp4-config.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-glib/nm-dhcp4-config.c')
-rw-r--r--libnm-glib/nm-dhcp4-config.c31
1 files changed, 10 insertions, 21 deletions
diff --git a/libnm-glib/nm-dhcp4-config.c b/libnm-glib/nm-dhcp4-config.c
index b8d7dcdd..a861d982 100644
--- a/libnm-glib/nm-dhcp4-config.c
+++ b/libnm-glib/nm-dhcp4-config.c
@@ -51,26 +51,23 @@ nm_dhcp4_config_init (NMDHCP4Config *config)
 {
 }
 
-static void
-copy_options (gpointer key, gpointer data, gpointer user_data)
-{
-	GHashTable *options = (GHashTable *) user_data;
-	GValue *value = (GValue *) data;
-
-	g_hash_table_insert (options, g_strdup (key), g_value_dup_string (value));
-}
-
 static gboolean
 demarshal_dhcp4_options (NMObject *object, GParamSpec *pspec, GValue *value, gpointer field)
 {
 	NMDHCP4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE (object);
 	GHashTable *new_options;
+	GHashTableIter iter;
+	const char *key;
+	GValue *opt;
 
 	g_hash_table_remove_all (priv->options);
 
 	new_options = g_value_get_boxed (value);
-	if (new_options)
-		g_hash_table_foreach (new_options, copy_options, priv->options);
+	if (new_options) {
+		g_hash_table_iter_init (&iter, new_options);
+		while (g_hash_table_iter_next (&iter, (gpointer) &key, (gpointer) &opt))
+			g_hash_table_insert (priv->options, g_strdup (key), g_value_dup_string (opt));
+	}
 
 	_nm_object_queue_notify (object, NM_DHCP4_CONFIG_OPTIONS);
 	return TRUE;
@@ -93,21 +90,13 @@ register_properties (NMDHCP4Config *config)
 static void
 constructed (GObject *object)
 {
-	DBusGConnection *connection;
-	NMDHCP4ConfigPrivate *priv;
+	NMDHCP4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE (object);
 
 	G_OBJECT_CLASS (nm_dhcp4_config_parent_class)->constructed (object);
 
-	priv = NM_DHCP4_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 (NM_OBJECT (object));
-
-	priv->proxy = dbus_g_proxy_new_for_name (connection,
-										   NM_DBUS_SERVICE,
-										   nm_object_get_path (NM_OBJECT (object)),
-										   NM_DBUS_INTERFACE_DHCP4_CONFIG);
-
+	priv->proxy = _nm_object_new_proxy (NM_OBJECT (object), NULL, NM_DBUS_INTERFACE_DHCP4_CONFIG);
 	register_properties (NM_DHCP4_CONFIG (object));
 }