Revert "dispatcher: handle DHCP Options property correctly"
This reverts commit e5e3dbf415
.
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.
This commit is contained in:
@@ -228,30 +228,20 @@ construct_ip4_items (GSList *items, GHashTable *ip4_config, const char *prefix)
|
|||||||
static GSList *
|
static GSList *
|
||||||
construct_device_dhcp4_items (GSList *items, GHashTable *dhcp4_config)
|
construct_device_dhcp4_items (GSList *items, GHashTable *dhcp4_config)
|
||||||
{
|
{
|
||||||
GHashTableIter iter1, iter2;
|
GHashTableIter iter;
|
||||||
const char *key1, *key2;
|
const char *key, *tmp;
|
||||||
GValue *val1, *val2;
|
GValue *val;
|
||||||
char *ucased1, *ucased2, *value_as_string;
|
char *ucased;
|
||||||
|
|
||||||
if (dhcp4_config == NULL)
|
if (dhcp4_config == NULL)
|
||||||
return items;
|
return items;
|
||||||
|
|
||||||
g_hash_table_iter_init (&iter1, dhcp4_config);
|
g_hash_table_iter_init (&iter, dhcp4_config);
|
||||||
while (g_hash_table_iter_next (&iter1, (gpointer) &key1, (gpointer) &val1)) {
|
while (g_hash_table_iter_next (&iter, (gpointer) &key, (gpointer) &val)) {
|
||||||
if (g_type_is_a (G_VALUE_TYPE (val1), DBUS_TYPE_G_MAP_OF_VARIANT)) {
|
ucased = g_ascii_strup (key, -1);
|
||||||
GHashTable *options_hash = (GHashTable *) g_value_get_boxed (val1);
|
tmp = g_value_get_string (val);
|
||||||
|
items = g_slist_prepend (items, g_strdup_printf ("DHCP4_%s=%s", ucased, tmp));
|
||||||
g_hash_table_iter_init (&iter2, options_hash);
|
g_free (ucased);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
@@ -371,30 +361,20 @@ construct_ip6_items (GSList *items, GHashTable *ip6_config, const char *prefix)
|
|||||||
static GSList *
|
static GSList *
|
||||||
construct_device_dhcp6_items (GSList *items, GHashTable *dhcp6_config)
|
construct_device_dhcp6_items (GSList *items, GHashTable *dhcp6_config)
|
||||||
{
|
{
|
||||||
GHashTableIter iter1, iter2;
|
GHashTableIter iter;
|
||||||
const char *key1, *key2;
|
const char *key, *tmp;
|
||||||
GValue *val1, *val2;
|
GValue *val;
|
||||||
char *ucased1, *ucased2, *value_as_string;
|
char *ucased;
|
||||||
|
|
||||||
if (dhcp6_config == NULL)
|
if (dhcp6_config == NULL)
|
||||||
return items;
|
return items;
|
||||||
|
|
||||||
g_hash_table_iter_init (&iter1, dhcp6_config);
|
g_hash_table_iter_init (&iter, dhcp6_config);
|
||||||
while (g_hash_table_iter_next (&iter1, (gpointer) &key1, (gpointer) &val1)) {
|
while (g_hash_table_iter_next (&iter, (gpointer) &key, (gpointer) &val)) {
|
||||||
if (g_type_is_a (G_VALUE_TYPE (val1), DBUS_TYPE_G_MAP_OF_VARIANT)) {
|
ucased = g_ascii_strup (key, -1);
|
||||||
GHashTable *options_hash = (GHashTable *) g_value_get_boxed (val1);
|
tmp = g_value_get_string (val);
|
||||||
|
items = g_slist_prepend (items, g_strdup_printf ("DHCP6_%s=%s", ucased, tmp));
|
||||||
g_hash_table_iter_init (&iter2, options_hash);
|
g_free (ucased);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user