|
|
| version 1.12.4.4, 2016/05/14 19:55:52 | 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 529 e_ether_addr(const char *ifname, ether_addr_t * __rest | Line 529 e_ether_addr(const char *ifname, ether_addr_t * __rest |
| a = e_malloc(sizeof(ether_addr_t)); | a = e_malloc(sizeof(ether_addr_t)); |
| if (a) | if (a) |
| memcpy(a, req.ifr_addr.sa_data, sizeof(ether_addr_t)); | memcpy(a, req.ifr_addr.sa_data, sizeof(ether_addr_t)); |
| /* should set mac address */ | |
| if (addr) { | |
| memset(&req, 0, sizeof req); | |
| strlcpy(req.ifr_name, ifname, sizeof req.ifr_name); | |
| 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); | close(s); |
| break; | break; |