From 6109388df2439df433724ff2f33982e18d0e30a8 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Wed, 11 May 2011 15:24:40 -0500 Subject: [PATCH] Revert "dispatcher: handle DHCP Options property correctly" This reverts commit e5e3dbf41573501b19b3a97db33c4e7a4554ea6a. The patch fixes the issue but it should really be resolved by the NM dispatcher code in NetworkManagerUtils.c flattening the DHCP Options property instead, keeping the dispatcher code simpler. --- callouts/nm-dispatcher-utils.c | 60 ++++++++++++---------------------- 1 file changed, 20 insertions(+), 40 deletions(-) diff --git a/callouts/nm-dispatcher-utils.c b/callouts/nm-dispatcher-utils.c index cdb7697c90..887e80dda0 100644 --- a/callouts/nm-dispatcher-utils.c +++ b/callouts/nm-dispatcher-utils.c @@ -228,30 +228,20 @@ construct_ip4_items (GSList *items, GHashTable *ip4_config, const char *prefix) static GSList * construct_device_dhcp4_items (GSList *items, GHashTable *dhcp4_config) { - GHashTableIter iter1, iter2; - const char *key1, *key2; - GValue *val1, *val2; - char *ucased1, *ucased2, *value_as_string; + GHashTableIter iter; + const char *key, *tmp; + GValue *val; + char *ucased; if (dhcp4_config == NULL) return items; - g_hash_table_iter_init (&iter1, dhcp4_config); - while (g_hash_table_iter_next (&iter1, (gpointer) &key1, (gpointer) &val1)) { - if (g_type_is_a (G_VALUE_TYPE (val1), DBUS_TYPE_G_MAP_OF_VARIANT)) { - GHashTable *options_hash = (GHashTable *) g_value_get_boxed (val1); - - g_hash_table_iter_init (&iter2, options_hash); - while (g_hash_table_iter_next (&iter2, (gpointer) &key2, (gpointer) &val2)) { - ucased1 = g_ascii_strup (key1, -1); - ucased2 = g_ascii_strup (key2, -1); - value_as_string = g_strdup_value_contents ((GValue *) val2); - items = g_slist_prepend (items, g_strdup_printf ("DHCP4_%s_%s=%s", ucased1, ucased2, value_as_string)); - g_free (ucased1); - g_free (ucased2); - g_free (value_as_string); - } - } + g_hash_table_iter_init (&iter, dhcp4_config); + while (g_hash_table_iter_next (&iter, (gpointer) &key, (gpointer) &val)) { + ucased = g_ascii_strup (key, -1); + tmp = g_value_get_string (val); + items = g_slist_prepend (items, g_strdup_printf ("DHCP4_%s=%s", ucased, tmp)); + g_free (ucased); } return items; } @@ -371,30 +361,20 @@ construct_ip6_items (GSList *items, GHashTable *ip6_config, const char *prefix) static GSList * construct_device_dhcp6_items (GSList *items, GHashTable *dhcp6_config) { - GHashTableIter iter1, iter2; - const char *key1, *key2; - GValue *val1, *val2; - char *ucased1, *ucased2, *value_as_string; + GHashTableIter iter; + const char *key, *tmp; + GValue *val; + char *ucased; if (dhcp6_config == NULL) return items; - g_hash_table_iter_init (&iter1, dhcp6_config); - while (g_hash_table_iter_next (&iter1, (gpointer) &key1, (gpointer) &val1)) { - if (g_type_is_a (G_VALUE_TYPE (val1), DBUS_TYPE_G_MAP_OF_VARIANT)) { - GHashTable *options_hash = (GHashTable *) g_value_get_boxed (val1); - - g_hash_table_iter_init (&iter2, options_hash); - while (g_hash_table_iter_next (&iter2, (gpointer) &key2, (gpointer) &val2)) { - ucased1 = g_ascii_strup (key1, -1); - ucased2 = g_ascii_strup (key2, -1); - value_as_string = g_strdup_value_contents ((GValue *) val2); - items = g_slist_prepend (items, g_strdup_printf ("DHCP6_%s_%s=%s", ucased1, ucased2, value_as_string)); - g_free (ucased1); - g_free (ucased2); - g_free (value_as_string); - } - } + g_hash_table_iter_init (&iter, dhcp6_config); + while (g_hash_table_iter_next (&iter, (gpointer) &key, (gpointer) &val)) { + ucased = g_ascii_strup (key, -1); + tmp = g_value_get_string (val); + items = g_slist_prepend (items, g_strdup_printf ("DHCP6_%s=%s", ucased, tmp)); + g_free (ucased); } return items; }