From 4edcf5710d043d366d8fd52a53b259399678309a Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 10 Aug 2020 16:37:04 +0200 Subject: [PATCH] Skip existing interfaces on opening the first available utun on macOS This avoids the error messages trying to open already used utuns. Signed-off-by: Arne Schwabe Acked-by: Lev Stipakov Message-Id: <20200810143707.5834-15-arne@rfc2549.org> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg20665.html Signed-off-by: Gert Doering --- src/openvpn/tun.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c index cc7b65cf4..304544547 100644 --- a/src/openvpn/tun.c +++ b/src/openvpn/tun.c @@ -3021,8 +3021,15 @@ open_darwin_utun(const char *dev, const char *dev_type, const char *dev_node, st /* try to open first available utun device if no specific utun is requested */ if (utunnum == -1) { - for (utunnum = 0; utunnum<255; utunnum++) + for (utunnum = 0; utunnum < 255; utunnum++) { + char ifname[20]; + /* if the interface exists silently skip it */ + ASSERT(snprintf(ifname, sizeof(ifname), "utun%d", utunnum) > 0); + if (if_nametoindex(ifname)) + { + continue; + } fd = utun_open_helper(ctlInfo, utunnum); /* Break if the fd is valid, * or if early initialization failed (-2) */ -- 2.47.2