diff options
author | Dan Williams <dcbw@redhat.com> | 2014-07-16 16:41:48 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2014-07-16 16:41:48 -0500 |
commit | 964e72f0e4eb022dece2d2bb16d1f8fbebfe712d (patch) | |
tree | 8eb334ed0a4adf734f7637b45120ca9a04ac5278 | |
parent | e0e25c698143e9946423c487e91e5d2c529db577 (diff) | |
download | NetworkManager-dcbw/wwan-ipv6-2.tar.gz |
fixup! wwan: add infrastructure for IPv6 config resultsdcbw/wwan-ipv6-2
-rw-r--r-- | src/devices/wwan/nm-modem.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/devices/wwan/nm-modem.c b/src/devices/wwan/nm-modem.c index 5ff927a9e0..354fd7a59d 100644 --- a/src/devices/wwan/nm-modem.c +++ b/src/devices/wwan/nm-modem.c @@ -596,6 +596,7 @@ nm_modem_emit_ip6_config_result (NMModem *self, NMIP6Config *config, GError *error) { + NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (self); guint i, num; gboolean do_slaac = TRUE; @@ -613,10 +614,11 @@ nm_modem_emit_ip6_config_result (NMModem *self, for (i = 0; i < num; i++) { const NMPlatformIP6Address * addr = nm_ip6_config_get_address (config, i); - if (!IN6_IS_ADDR_LINKLOCAL (&addr->address)) { + if (IN6_IS_ADDR_LINKLOCAL (&addr->address)) { + if (!priv->iid) + priv->iid = ((guint64 *)(&addr->address.s6_addr))[1]; + } else do_slaac = FALSE; - break; - } } } g_assert (config || do_slaac); @@ -1018,7 +1020,7 @@ nm_modem_get_iid (NMModem *self) /* Only handle PPPv6 Interface Identifer for now; ethernet interfaces * are handled by the generic NMDevice MAC-address based scheme. */ - return (priv->ip6_method == NM_MODEM_IP_METHOD_PPP) ? priv->iid : 0; + return priv->iid; } /*****************************************************************************/ |