Lines Matching defs:ifr
43 bool GetIfState(const char* ifName, int sock, struct ifreq* ifr)
45 if (memset_s(ifr, sizeof(*ifr), 0, sizeof(*ifr)) != EOK) {
49 if (strlcpy(ifr->ifr_name, ifName, sizeof(ifr->ifr_name)) >=
50 sizeof(ifr->ifr_name)) {
54 if (TEMP_FAILURE_RETRY(ioctl(sock, SIOCGIFFLAGS, ifr)) != 0) {
68 struct ifreq ifr;
69 if (!GetIfState(ifName, sock.Get(), &ifr)) {
72 return ifr.ifr_flags & IFF_UP;
82 struct ifreq ifr;
83 if (!GetIfState(ifName, sock.Get(), &ifr)) {
86 const bool currentlyUp = ifr.ifr_flags & IFF_UP;
91 ifr.ifr_flags |= IFF_UP;
93 ifr.ifr_flags &= ~IFF_UP;
95 if (TEMP_FAILURE_RETRY(ioctl(sock.Get(), SIOCSIFFLAGS, &ifr)) != 0) {
109 struct ifreq ifr;
122 if (!GetIfState(ifName, sock.Get(), &ifr)) {
125 if (memset_s(&ifr.ifr_hwaddr, sizeof(ifr.ifr_hwaddr), 0, sizeof(ifr.ifr_hwaddr)) < 0) {
128 ifr.ifr_hwaddr.sa_family = ARPHRD_ETHER;
129 if (memcpy_s(ifr.ifr_hwaddr.sa_data, MAC_LEN, macBin, MAC_LEN) < 0) {
132 if (TEMP_FAILURE_RETRY(ioctl(sock.Get(), SIOCSIFHWADDR, &ifr)) != 0) {