|
|
| version 1.12.4.5, 2016/05/14 20:02:04 | version 1.12.4.6, 2016/05/18 12:38:16 |
|---|---|
| Line 521 e_ether_addr(const char *ifname, ether_addr_t * __rest | Line 521 e_ether_addr(const char *ifname, ether_addr_t * __rest |
| } | } |
| #else | #else |
| if (p->ifa_name && !strcmp(p->ifa_name, ifname)) { | 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) | if (s == -1) |
| break; | break; |
| strlcpy(req.ifr_name, ifname, sizeof req.ifr_name); | strlcpy(req.ifr_name, ifname, sizeof req.ifr_name); |
| Line 534 e_ether_addr(const char *ifname, ether_addr_t * __rest | Line 534 e_ether_addr(const char *ifname, ether_addr_t * __rest |
| if (addr) { | if (addr) { |
| memset(&req, 0, sizeof req); | memset(&req, 0, sizeof req); |
| strlcpy(req.ifr_name, ifname, sizeof req.ifr_name); | strlcpy(req.ifr_name, ifname, sizeof req.ifr_name); |
| /* TODO: sa */ | sa.sa.sa_family = ARPHRD_ETHER; |
| req.ifr_ifru.ifru_addr = sa.sa; | memcpy(sa.sa.sa_data, addr, sizeof(ether_addr_t)); |
| ioctl(s, SIOCSIFLLADDR, &req); | req.ifr_hwaddr = sa.sa; |
| ioctl(s, SIOCSIFHWADDR, &req); | |
| } | } |
| } | } |
| close(s); | close(s); |