mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 15:10:09 +01:00
ip6-config: sort addresses only when reading the property value
Don't change the address order from configuration, but instead sort
addresses just before returning them to clients.
(cherry picked from commit 0a0bca9c7f)
This commit is contained in:
parent
450572cff4
commit
2ea42eee5a
2 changed files with 7 additions and 4 deletions
|
|
@ -5567,8 +5567,6 @@ END_ADD_DEFAULT_ROUTE:
|
|||
priv->default_route.v6_has = _device_get_default_route_from_platform (self, AF_INET6, (NMPlatformIPRoute *) &priv->default_route.v6);
|
||||
}
|
||||
|
||||
nm_ip6_config_addresses_sort (composite);
|
||||
|
||||
/* Allow setting MTU etc */
|
||||
if (commit) {
|
||||
NMUtilsIPv6IfaceId iid;
|
||||
|
|
|
|||
|
|
@ -2066,6 +2066,7 @@ get_property (GObject *object, guint prop_id,
|
|||
case PROP_ADDRESSES:
|
||||
{
|
||||
GVariantBuilder array_builder, addr_builder;
|
||||
gs_unref_array GArray *new = NULL;
|
||||
const struct in6_addr *gateway;
|
||||
guint naddr, i;
|
||||
|
||||
|
|
@ -2076,10 +2077,14 @@ get_property (GObject *object, guint prop_id,
|
|||
|
||||
naddr = nm_ip6_config_get_num_addresses (config);
|
||||
gateway = nm_ip6_config_get_gateway (config);
|
||||
new = g_array_sized_new (FALSE, FALSE, sizeof (NMPlatformIP6Address), naddr);
|
||||
g_array_append_vals (new, priv->addresses->data, naddr);
|
||||
g_array_sort_with_data (new, _addresses_sort_cmp,
|
||||
GINT_TO_POINTER (priv->privacy));
|
||||
|
||||
g_variant_builder_init (&array_builder, G_VARIANT_TYPE ("aa{sv}"));
|
||||
for (i = 0; i < naddr; i++) {
|
||||
const NMPlatformIP6Address *address = nm_ip6_config_get_address (config, i);
|
||||
const NMPlatformIP6Address *address = &g_array_index (new, NMPlatformIP6Address, i);
|
||||
|
||||
g_variant_builder_init (&addr_builder, G_VARIANT_TYPE ("a{sv}"));
|
||||
g_variant_builder_add (&addr_builder, "{sv}",
|
||||
|
|
@ -2101,7 +2106,7 @@ get_property (GObject *object, guint prop_id,
|
|||
|
||||
g_variant_builder_init (&array_builder, G_VARIANT_TYPE ("a(ayuay)"));
|
||||
for (i = 0; i < naddr; i++) {
|
||||
const NMPlatformIP6Address *address = nm_ip6_config_get_address (config, i);
|
||||
const NMPlatformIP6Address *address = &g_array_index (new, NMPlatformIP6Address, i);
|
||||
|
||||
g_variant_builder_add (&array_builder, "(@ayu@ay)",
|
||||
g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue