#include #include #include #include #include #include #include int open_tun(char *name) { int fd = open("/dev/net/tun", O_RDWR); if (fd < 0) { perror("open"); return -1; } struct ifreq ifr; strncpy(ifr.ifr_name, name, IFNAMSIZ); ifr.ifr_flags = IFF_TUN | IFF_NO_PI; if (ioctl(fd, TUNSETIFF, &ifr) < 0) { perror("ioctl"); return -1; } return fd; }