mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-20 17:30:04 +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.
This commit is contained in:
parent
803a79f778
commit
0a0bca9c7f
2 changed files with 7 additions and 4 deletions
|
|
@ -5717,8 +5717,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