--- libelwix/src/net.c 2016/05/14 20:02:04 1.12.4.5 +++ libelwix/src/net.c 2016/05/18 12:47:42 1.13 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: net.c,v 1.12.4.5 2016/05/14 20:02:04 misho Exp $ +* $Id: net.c,v 1.13 2016/05/18 12:47:42 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -521,7 +521,7 @@ e_ether_addr(const char *ifname, ether_addr_t * __rest } #else if (p->ifa_name && !strcmp(p->ifa_name, ifname)) { - s = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); + s = socket(AF_INET, SOCK_DGRAM, 0); if (s == -1) break; strlcpy(req.ifr_name, ifname, sizeof req.ifr_name); @@ -534,9 +534,10 @@ e_ether_addr(const char *ifname, ether_addr_t * __rest if (addr) { memset(&req, 0, sizeof req); strlcpy(req.ifr_name, ifname, sizeof req.ifr_name); - /* TODO: sa */ - req.ifr_ifru.ifru_addr = sa.sa; - ioctl(s, SIOCSIFLLADDR, &req); + sa.sa.sa_family = ARPHRD_ETHER; + memcpy(sa.sa.sa_data, addr, sizeof(ether_addr_t)); + req.ifr_hwaddr = sa.sa; + ioctl(s, SIOCSIFHWADDR, &req); } } close(s);