Skip to content

Commit 281fa4c

Browse files
committed
*: use Go 1.13+ errors.Is instead of os.IsNotExist
Signed-off-by: Matt Layher <[email protected]>
1 parent 874138c commit 281fa4c

9 files changed

+25
-20
lines changed

client.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package wgctrl
22

33
import (
4+
"errors"
45
"os"
56

67
"golang.zx2c4.com/wireguard/wgctrl/internal/wginternal"
@@ -58,14 +59,14 @@ func (c *Client) Devices() ([]*wgtypes.Device, error) {
5859
// Device retrieves a WireGuard device by its interface name.
5960
//
6061
// If the device specified by name does not exist or is not a WireGuard device,
61-
// an error is returned which can be checked using os.IsNotExist.
62+
// an error is returned which can be checked using `errors.Is(err, os.ErrNotExist)`.
6263
func (c *Client) Device(name string) (*wgtypes.Device, error) {
6364
for _, wgc := range c.cs {
6465
d, err := wgc.Device(name)
6566
switch {
6667
case err == nil:
6768
return d, nil
68-
case os.IsNotExist(err):
69+
case errors.Is(err, os.ErrNotExist):
6970
continue
7071
default:
7172
return nil, err
@@ -82,14 +83,14 @@ func (c *Client) Device(name string) (*wgtypes.Device, error) {
8283
// configuring a device.
8384
//
8485
// If the device specified by name does not exist or is not a WireGuard device,
85-
// an error is returned which can be checked using os.IsNotExist.
86+
// an error is returned which can be checked using `errors.Is(err, os.ErrNotExist)`.
8687
func (c *Client) ConfigureDevice(name string, cfg wgtypes.Config) error {
8788
for _, wgc := range c.cs {
8889
err := wgc.ConfigureDevice(name, cfg)
8990
switch {
9091
case err == nil:
9192
return nil
92-
case os.IsNotExist(err):
93+
case errors.Is(err, os.ErrNotExist):
9394
continue
9495
default:
9596
return err

client_integration_test.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package wgctrl_test
22

33
import (
4+
"errors"
45
"fmt"
56
"net"
67
"os"
@@ -91,7 +92,7 @@ func TestIntegrationClientIsNotExist(t *testing.T) {
9192
c, done := integrationClient(t)
9293
defer done()
9394

94-
if _, err := c.Device("wgnotexist0"); !os.IsNotExist(err) {
95+
if _, err := c.Device("wgnotexist0"); !errors.Is(err, os.ErrNotExist) {
9596
t.Fatalf("expected is not exist error, but got: %v", err)
9697
}
9798
}
@@ -111,7 +112,7 @@ func integrationClient(t *testing.T) (*wgctrl.Client, func()) {
111112

112113
c, err := wgctrl.New()
113114
if err != nil {
114-
if os.IsNotExist(err) {
115+
if errors.Is(err, os.ErrNotExist) {
115116
t.Skip("skipping, wgctrl is not available on this system")
116117
}
117118

internal/wglinux/client_linux.go

+5-7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package wglinux
44

55
import (
6+
"errors"
67
"fmt"
78
"os"
89
"syscall"
@@ -43,10 +44,7 @@ func initClient(c *genetlink.Conn) (*Client, bool, error) {
4344
if err != nil {
4445
_ = c.Close()
4546

46-
//lint:ignore SA1019 maintain compatibility with old versions of Go
47-
// by using netlink.IsNotExist for now. We can switch to errors.Is at
48-
// a later time.
49-
if netlink.IsNotExist(err) {
47+
if errors.Is(err, os.ErrNotExist) {
5048
// The generic netlink interface is not available.
5149
return nil, false, nil
5250
}
@@ -157,8 +155,8 @@ func (c *Client) execute(command uint8, flags netlink.HeaderFlags, attrb []byte)
157155
return msgs, nil
158156
}
159157

160-
// We don't want to expose netlink errors directly to callers, so unpack
161-
// the error for use with os.IsNotExist and similar.
158+
// We don't want to expose netlink errors directly to callers so unpack to
159+
// something more generic.
162160
oerr, ok := err.(*netlink.OpError)
163161
if !ok {
164162
// Expect all errors to conform to netlink.OpError.
@@ -167,7 +165,7 @@ func (c *Client) execute(command uint8, flags netlink.HeaderFlags, attrb []byte)
167165

168166
switch oerr.Err {
169167
// Convert "no such device" and "not a wireguard device" to an error
170-
// compatible with os.IsNotExist for easy checking.
168+
// compatible with os.ErrNotExist for easy checking.
171169
case unix.ENODEV, unix.ENOTSUP:
172170
return nil, os.ErrNotExist
173171
default:

internal/wglinux/client_linux_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package wglinux
44

55
import (
6+
"errors"
67
"fmt"
78
"net"
89
"os"
@@ -119,7 +120,7 @@ func TestLinuxClientIsNotExist(t *testing.T) {
119120
})
120121
defer c.Close()
121122

122-
if err := tt.fn(c); !os.IsNotExist(err) {
123+
if err := tt.fn(c); !errors.Is(err, os.ErrNotExist) {
123124
t.Fatalf("expected is not exist, but got: %v", err)
124125
}
125126
})

internal/wgopenbsd/client_openbsd_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ func TestClientDeviceNotExist(t *testing.T) {
283283
},
284284
}
285285

286-
if _, err := c.Device("wgnotexist0"); !os.IsNotExist(err) {
286+
if _, err := c.Device("wgnotexist0"); !errors.Is(err, os.ErrNotExist) {
287287
t.Fatalf("expected is not exist, but got: %v", err)
288288
}
289289
})

internal/wguser/client_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package wguser
22

33
import (
4+
"errors"
45
"os"
56
"strings"
67
"sync"
@@ -44,7 +45,7 @@ func TestClientDevice(t *testing.T) {
4445

4546
dev, err := c.Device(tt.device)
4647
if err != nil {
47-
if !tt.exists && os.IsNotExist(err) {
48+
if !tt.exists && errors.Is(err, os.ErrNotExist) {
4849
return
4950
}
5051

internal/wguser/configure_test.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package wguser
22

33
import (
4+
"errors"
45
"net"
56
"os"
67
"testing"
@@ -68,10 +69,10 @@ func TestClientConfigureDeviceError(t *testing.T) {
6869
t.Fatal("expected an error, but none occurred")
6970
}
7071

71-
if !tt.notExist && os.IsNotExist(err) {
72+
if !tt.notExist && errors.Is(err, os.ErrNotExist) {
7273
t.Fatalf("expected other error, but got not exist: %v", err)
7374
}
74-
if tt.notExist && !os.IsNotExist(err) {
75+
if tt.notExist && !errors.Is(err, os.ErrNotExist) {
7576
t.Fatalf("expected not exist error, but got: %v", err)
7677
}
7778
})

internal/wguser/conn_unix.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package wguser
44

55
import (
6+
"errors"
67
"io/ioutil"
78
"net"
89
"os"
@@ -29,7 +30,7 @@ func findUNIXSockets(dirs []string) ([]string, error) {
2930
for _, d := range dirs {
3031
files, err := ioutil.ReadDir(d)
3132
if err != nil {
32-
if os.IsNotExist(err) {
33+
if errors.Is(err, os.ErrNotExist) {
3334
continue
3435
}
3536

internal/wguser/conn_windows_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package wguser
44

55
import (
6+
"errors"
67
"fmt"
78
"net"
89
"os"
@@ -18,7 +19,7 @@ var isWINE = func() bool {
1819
// Reference: https://forum.winehq.org/viewtopic.php?t=4988.
1920
k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Wine`, registry.QUERY_VALUE)
2021
if err != nil {
21-
if os.IsNotExist(err) {
22+
if errors.Is(err, os.ErrNotExist) {
2223
// No key; the tests don't appear to be running in WINE.
2324
return false
2425
}

0 commit comments

Comments
 (0)