summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2016-04-30 14:02:31 +0200
committerLubomir Rintel <lkundrak@v3.sk>2016-04-30 14:03:23 +0200
commit40c7ac61387873025b7306d081ecacc3ea7b6f3b (patch)
treee5f86d767b66e033bf3a8f6357f1743da66a2433
parentd88f0a585fabb9a96c60f34da26f4d6bc9f6a11f (diff)
downloadNetworkManager-40c7ac61387873025b7306d081ecacc3ea7b6f3b.tar.gz
device: set token
-rw-r--r--src/devices/nm-device.c20
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);
}