|
|
|
|
@ -77,10 +77,14 @@ static int create_tun_device(char *ifname, size_t ifname_len) {
|
|
|
|
|
strncpy(ifr.ifr_name, ifname, IFNAMSIZ - 1); |
|
|
|
|
ifr.ifr_name[IFNAMSIZ - 1] = '\0'; |
|
|
|
|
if (ioctl(sock, SIOCIFCREATE, &ifr) < 0) { |
|
|
|
|
if (errno == EEXIST) { |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_TUN, "TUN interface %s already exists, reusing it", ifname); |
|
|
|
|
} else { |
|
|
|
|
DEBUG_ERROR(DEBUG_CATEGORY_TUN, "SIOCIFCREATE failed for %s: %s", ifname, strerror(errno)); |
|
|
|
|
close(sock); |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
close(sock); |
|
|
|
|
|
|
|
|
|
char dev_path[IFNAMSIZ + 6]; |
|
|
|
|
|