From c040dea7985b7b5a35ca2fa746c3385732c44bd1 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 9 Feb 2021 19:48:27 +0100 Subject: tun: use errors.Is for unwrapping Signed-off-by: Jason A. Donenfeld --- tun/tun_darwin.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'tun/tun_darwin.go') diff --git a/tun/tun_darwin.go b/tun/tun_darwin.go index 7c7f3e2..f513d03 100644 --- a/tun/tun_darwin.go +++ b/tun/tun_darwin.go @@ -6,6 +6,7 @@ package tun import ( + "errors" "fmt" "io/ioutil" "net" @@ -31,13 +32,9 @@ type NativeTun struct { func retryInterfaceByIndex(index int) (iface *net.Interface, err error) { for i := 0; i < 20; i++ { iface, err = net.InterfaceByIndex(index) - if err != nil { - if opErr, ok := err.(*net.OpError); ok { - if syscallErr, ok := opErr.Err.(*os.SyscallError); ok && syscallErr.Err == syscall.ENOMEM { - time.Sleep(time.Duration(i) * time.Second / 3) - continue - } - } + if err != nil && errors.Is(err, syscall.ENOMEM) { + time.Sleep(time.Duration(i) * time.Second / 3) + continue } return iface, err } -- cgit v1.2.3