diff options
Diffstat (limited to 'btif/src/btif_pan.c')
-rw-r--r-- | btif/src/btif_pan.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/btif/src/btif_pan.c b/btif/src/btif_pan.c index 377843822..69f28a00b 100644 --- a/btif/src/btif_pan.c +++ b/btif/src/btif_pan.c @@ -312,7 +312,7 @@ static int tap_if_up(const char *devname, const bt_bdaddr_t *addr) //set mac addr memset(&ifr, 0, sizeof(ifr)); strncpy(ifr.ifr_name, devname, IFNAMSIZ - 1); - err = ioctl(sk, SIOCGIFHWADDR, &ifr); + err = TEMP_FAILURE_RETRY(ioctl(sk, SIOCGIFHWADDR, &ifr)); if (err < 0) { BTIF_TRACE_ERROR("Could not get network hardware for interface:%s, errno:%s", devname, strerror(errno)); @@ -333,7 +333,7 @@ static int tap_if_up(const char *devname, const bt_bdaddr_t *addr) ifr.ifr_hwaddr.sa_data[0] &= ~0x01; } - err = ioctl(sk, SIOCSIFHWADDR, (caddr_t)&ifr); + err = TEMP_FAILURE_RETRY(ioctl(sk, SIOCSIFHWADDR, (caddr_t)&ifr)); if (err < 0) { BTIF_TRACE_ERROR("Could not set bt address for interface:%s, errno:%s", devname, strerror(errno)); @@ -348,7 +348,7 @@ static int tap_if_up(const char *devname, const bt_bdaddr_t *addr) ifr.ifr_flags |= IFF_UP; ifr.ifr_flags |= IFF_MULTICAST; - err = ioctl(sk, SIOCSIFFLAGS, (caddr_t) &ifr); + err = TEMP_FAILURE_RETRY(ioctl(sk, SIOCSIFFLAGS, (caddr_t) &ifr)); if (err < 0) { @@ -375,7 +375,7 @@ static int tap_if_down(const char *devname) ifr.ifr_flags &= ~IFF_UP; - ioctl(sk, SIOCSIFFLAGS, (caddr_t) &ifr); + TEMP_FAILURE_RETRY(ioctl(sk, SIOCSIFFLAGS, (caddr_t) &ifr)); close(sk); @@ -401,7 +401,7 @@ int btpan_tap_open() /* open the clone device */ - if ((fd = open(clonedev, O_RDWR)) < 0) + if ((fd = TEMP_FAILURE_RETRY(open(clonedev, O_RDWR))) < 0) { BTIF_TRACE_DEBUG("could not open %s, err:%d", clonedev, errno); return fd; @@ -413,7 +413,7 @@ int btpan_tap_open() strncpy(ifr.ifr_name, TAP_IF_NAME, IFNAMSIZ); /* try to create the device */ - if ((err = ioctl(fd, TUNSETIFF, (void *) &ifr)) < 0) + if ((err = TEMP_FAILURE_RETRY(ioctl(fd, TUNSETIFF, (void *) &ifr))) < 0) { BTIF_TRACE_DEBUG("ioctl error:%d, errno:%s", err, strerror(errno)); close(fd); @@ -421,8 +421,8 @@ int btpan_tap_open() } if (tap_if_up(TAP_IF_NAME, controller_get_interface()->get_address()) == 0) { - int flags = fcntl(fd, F_GETFL, 0); - fcntl(fd, F_SETFL, flags | O_NONBLOCK); + int flags = TEMP_FAILURE_RETRY(fcntl(fd, F_GETFL, 0)); + TEMP_FAILURE_RETRY(fcntl(fd, F_SETFL, flags | O_NONBLOCK)); return fd; } BTIF_TRACE_ERROR("can not bring up tap interface:%s", TAP_IF_NAME); @@ -451,7 +451,7 @@ int btpan_tap_send(int tap_fd, const BD_ADDR src, const BD_ADDR dst, UINT16 prot memcpy(packet + sizeof(tETH_HDR), buf, len); /* Send data to network interface */ - int ret = write(tap_fd, packet, len + sizeof(tETH_HDR)); + int ret = TEMP_FAILURE_RETRY(write(tap_fd, packet, len + sizeof(tETH_HDR))); BTIF_TRACE_DEBUG("ret:%d", ret); return ret; } @@ -742,7 +742,7 @@ static void btu_exec_tap_fd_read(void *p_param) { // We save it in the congest_packet right away in case we can't deliver it in this // attempt. if (!btpan_cb.congest_packet_size) { - ssize_t ret = read(fd, btpan_cb.congest_packet, sizeof(btpan_cb.congest_packet)); + ssize_t ret = TEMP_FAILURE_RETRY(read(fd, btpan_cb.congest_packet, sizeof(btpan_cb.congest_packet))); switch (ret) { case -1: BTIF_TRACE_ERROR("%s unable to read from driver: %s", __func__, strerror(errno)); @@ -786,7 +786,7 @@ static void btu_exec_tap_fd_read(void *p_param) { ufd.fd = fd; ufd.events = POLLIN; ufd.revents = 0; - if (poll(&ufd, 1, 0) <= 0 || IS_EXCEPTION(ufd.revents)) + if (TEMP_FAILURE_RETRY(poll(&ufd, 1, 0)) <= 0 || IS_EXCEPTION(ufd.revents)) break; } if (btpan_cb.flow) { |