interface-ip: fix eui64 ifaceid generation (FS#1668)
authorHans Dedecker <dedeckeh@gmail.com>
Mon, 30 Jul 2018 19:19:47 +0000 (21:19 +0200)
committerHans Dedecker <dedeckeh@gmail.com>
Mon, 30 Jul 2018 19:34:06 +0000 (21:34 +0200)
Use the mac address stored in the device_settings struct to generate the
eui64 ifaceid as the interface layer3 device does not contain a mac address
for non bridge interfaces

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
interface-ip.c

index 1e49fe6feac7dcf0d27278b0caedc7ee8370c7ef..c855cdb5066c190dddbcf9f3f466b750c953b10f 100644 (file)
@@ -723,8 +723,8 @@ eui64_ifaceid(struct interface *iface, struct in6_addr *addr)
        /* get mac address */
        uint8_t *macaddr = iface->l3_dev.dev->settings.macaddr;
        uint8_t *ifaceid = addr->s6_addr + 8;
-       memcpy(ifaceid,macaddr,3);
-       memcpy(ifaceid + 5,macaddr + 3, 3);
+       memcpy(ifaceid, st.macaddr, 3);
+       memcpy(ifaceid + 5, st.macaddr + 3, 3);
        ifaceid[3] = 0xff;
        ifaceid[4] = 0xfe;
        ifaceid[0] ^= 0x02;