X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Flinux%2Fdevice.c;h=37a057d896a400ae923f3b865d7759f32ba79b72;hb=72642b40b3ad476101622da202b6f977a32b472f;hp=ede681987c18b3b333ed3ae6ac7f9e9272fbfff8;hpb=19be9cf7150858311f7898fa3fb525d692d02f64;p=tinc diff --git a/src/linux/device.c b/src/linux/device.c index ede68198..37a057d8 100644 --- a/src/linux/device.c +++ b/src/linux/device.c @@ -55,12 +55,9 @@ static bool setup_device(void) { device = xstrdup(DEFAULT_DEVICE); if(!get_config_string(lookup_config(config_tree, "Interface"), &iface)) -#ifdef HAVE_LINUX_IF_TUN_H - if (netname != NULL) + if(netname) iface = xstrdup(netname); -#else - iface = xstrdup(strrchr(device, '/') ? strrchr(device, '/') + 1 : device); -#endif + device_fd = open(device, O_RDWR | O_NONBLOCK); if(device_fd < 0) { @@ -104,12 +101,7 @@ static bool setup_device(void) { if(!ioctl(device_fd, TUNSETIFF, &ifr)) { strncpy(ifrname, ifr.ifr_name, IFNAMSIZ); - if(iface) free(iface); - iface = xstrdup(ifrname); - } else if(!ioctl(device_fd, (('T' << 8) | 202), &ifr)) { - logger(DEBUG_ALWAYS, LOG_WARNING, "Old ioctl() request was needed for %s", device); - strncpy(ifrname, ifr.ifr_name, IFNAMSIZ); - if(iface) free(iface); + free(iface); iface = xstrdup(ifrname); } @@ -139,6 +131,7 @@ static bool read_packet(vpn_packet_t *packet) { return false; } + memset(packet->data, 0, 12); packet->len = inlen + 10; break; case DEVICE_TYPE_TAP: