aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2019-08-07 19:08:57 +0000
committerKazuki Yamaguchi <k@rhe.jp>2019-08-07 19:13:59 +0000
commite93d0f3154704735bead2eee05ada9afb0462684 (patch)
treedb8bb7013088bb8755721b285538edf6ec8e5d24
parent647a4db4f1a213fd1c9f493f9b4ee59f17c86a87 (diff)
downloadulfougretap-e93d0f3154704735bead2eee05ada9afb0462684.tar.gz
bring the tun device up automatically
-rw-r--r--src/main.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index 393f98b..f4672b5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -28,6 +28,17 @@ static void setup_tundev(const char *in_ifname)
debug("setup_tundev: created tuntap interface: %s", in_ifname);
+ struct ifreq ifr2;
+ memset(&ifr2, 0, sizeof(ifr2));
+ ifr2.ifr_flags = IFF_UP|IFF_RUNNING;
+ strncpy(ifr2.ifr_name, in_ifname, IFNAMSIZ - 1);
+ int tmpfd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (tmpfd < 0)
+ fatal("setup_tundev: socket(): %s", strerror(errno));
+ if (ioctl(tmpfd, SIOCSIFFLAGS, &ifr2) < 0)
+ fatal("setup_tundev: ioctl(SIOCSIFFLAGS): %s", strerror(errno));
+ close(tmpfd);
+
tun_fd = fd;
}