X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Flinux%2Fdevice.c;h=e273bfaeada736ac965bdc8c34b7051f5de2ca26;hb=d73cdee5df3e6c7395270c69e944b3c853f013ae;hp=5717d92097db837c1cdf26a400e6dbd0b5c945bb;hpb=6b92ac505d2cd5c7e390d49bf1f0b399ef9f8327;p=tinc diff --git a/src/linux/device.c b/src/linux/device.c index 5717d920..e273bfae 100644 --- a/src/linux/device.c +++ b/src/linux/device.c @@ -101,6 +101,9 @@ static bool setup_device(void) { strncpy(ifrname, ifr.ifr_name, IFNAMSIZ); free(iface); iface = xstrdup(ifrname); + } else { + logger(DEBUG_ALWAYS, LOG_ERR, "Could not create a tun/tap interface from %s: %s", device, strerror(errno)); + return false; } logger(DEBUG_ALWAYS, LOG_INFO, "%s is a %s", device, device_info); @@ -136,6 +139,9 @@ static bool read_packet(vpn_packet_t *packet) { if(inlen <= 0) { logger(DEBUG_ALWAYS, LOG_ERR, "Error while reading from %s %s: %s", device_info, device, strerror(errno)); + if (errno == EBADFD) { /* File descriptor in bad state */ + event_exit(); + } return false; }