diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2016-04-30 14:02:31 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2016-04-30 14:03:23 +0200 |
commit | 40c7ac61387873025b7306d081ecacc3ea7b6f3b (patch) | |
tree | e5f86d767b66e033bf3a8f6357f1743da66a2433 | |
parent | d88f0a585fabb9a96c60f34da26f4d6bc9f6a11f (diff) | |
download | NetworkManager-40c7ac61387873025b7306d081ecacc3ea7b6f3b.tar.gz |
device: set token
-rw-r--r-- | src/devices/nm-device.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 357db96c07..4440986851 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -5065,6 +5065,7 @@ ip6_config_merge_and_apply (NMDevice *self, gboolean ignore_auto_routes = FALSE; gboolean ignore_auto_dns = FALSE; gboolean auto_method = FALSE; + const char *token = NULL; /* Apply ignore-auto-routes and ignore-auto-dns settings */ connection = nm_device_get_applied_connection (self); @@ -5074,6 +5075,7 @@ ip6_config_merge_and_apply (NMDevice *self, if (s_ip6) { ignore_auto_routes = nm_setting_ip_config_get_ignore_auto_routes (s_ip6); ignore_auto_dns = nm_setting_ip_config_get_ignore_auto_dns (s_ip6); + token = nm_setting_ip6_config_get_token (NM_SETTING_IP6_CONFIG (s_ip6)); if (NM_IN_STRSET (nm_setting_ip_config_get_method (s_ip6), NM_SETTING_IP6_CONFIG_METHOD_AUTO, @@ -5220,6 +5222,24 @@ END_ADD_DEFAULT_ROUTE: /* Allow setting MTU etc */ if (commit) { + struct in6_addr i6_token; + + if (token && inet_pton (AF_INET6, token, &i6_token) == 1) { + NMUtilsIPv6IfaceId iid; + + iid.id_u8[7] = i6_token.s6_addr[15]; + iid.id_u8[6] = i6_token.s6_addr[14]; + iid.id_u8[5] = i6_token.s6_addr[13]; + iid.id_u8[4] = i6_token.s6_addr[12]; + iid.id_u8[3] = i6_token.s6_addr[11]; + iid.id_u8[2] = i6_token.s6_addr[10]; + iid.id_u8[1] = i6_token.s6_addr[9]; + iid.id_u8[0] = i6_token.s6_addr[8]; + nm_platform_link_set_ipv6_token (NM_PLATFORM_GET, + nm_device_get_ip_ifindex (self), + &iid); + } + if (NM_DEVICE_GET_CLASS (self)->ip6_config_pre_commit) NM_DEVICE_GET_CLASS (self)->ip6_config_pre_commit (self, composite); } |