]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
conn: use errors.Is for unwrapping
authorJason A. Donenfeld <Jason@zx2c4.com>
Tue, 9 Feb 2021 18:46:57 +0000 (19:46 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Tue, 9 Feb 2021 18:46:57 +0000 (19:46 +0100)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
conn/conn_default.go

index 22248afc8f2f66d3c26b574ce98ec68770b9cedb..2360068ed1932fe0939d94e33d21c06f67faff74 100644 (file)
@@ -8,8 +8,8 @@
 package conn
 
 import (
+       "errors"
        "net"
-       "os"
        "syscall"
 )
 
@@ -84,18 +84,6 @@ func listenNet(network string, port int) (*net.UDPConn, int, error) {
        return conn, uaddr.Port, nil
 }
 
-func extractErrno(err error) error {
-       opErr, ok := err.(*net.OpError)
-       if !ok {
-               return nil
-       }
-       syscallErr, ok := opErr.Err.(*os.SyscallError)
-       if !ok {
-               return nil
-       }
-       return syscallErr.Err
-}
-
 func createBind(uport uint16) (Bind, uint16, error) {
        var err error
        var bind nativeBind
@@ -105,16 +93,16 @@ again:
        port := int(uport)
 
        bind.ipv4, port, err = listenNet("udp4", port)
-       if err != nil && extractErrno(err) != syscall.EAFNOSUPPORT {
+       if err != nil && !errors.Is(err, syscall.EAFNOSUPPORT) {
                return nil, 0, err
        }
 
        bind.ipv6, port, err = listenNet("udp6", port)
-       if uport == 0 && err != nil && extractErrno(err) == syscall.EADDRINUSE && tries < 100 {
+       if uport == 0 && err != nil && errors.Is(err, syscall.EADDRINUSE) && tries < 100 {
                tries++
                goto again
        }
-       if err != nil && extractErrno(err) != syscall.EAFNOSUPPORT {
+       if err != nil && !errors.Is(err, syscall.EAFNOSUPPORT) {
                bind.ipv4.Close()
                bind.ipv4 = nil
                return nil, 0, err