summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-07-16 16:41:48 -0500
committerDan Williams <dcbw@redhat.com>2014-07-16 16:41:48 -0500
commit964e72f0e4eb022dece2d2bb16d1f8fbebfe712d (patch)
tree8eb334ed0a4adf734f7637b45120ca9a04ac5278
parente0e25c698143e9946423c487e91e5d2c529db577 (diff)
downloadNetworkManager-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.c10
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;
}
/*****************************************************************************/