diff --git a/internal/dhcpsvc/db.go b/internal/dhcpsvc/db.go index b247e653..f1ee7d55 100644 --- a/internal/dhcpsvc/db.go +++ b/internal/dhcpsvc/db.go @@ -106,6 +106,9 @@ func (srv *DHCPServer) dbLoad(ctx context.Context) (err error) { return nil } + defer func() { + err = errors.WithDeferred(err, file.Close()) + }() dl := &dataLeases{} err = json.NewDecoder(file).Decode(dl) diff --git a/internal/dhcpsvc/server_test.go b/internal/dhcpsvc/server_test.go index 0166a9b7..181161a6 100644 --- a/internal/dhcpsvc/server_test.go +++ b/internal/dhcpsvc/server_test.go @@ -4,6 +4,7 @@ import ( "io/fs" "net/netip" "os" + "path" "path/filepath" "strings" "testing" @@ -19,14 +20,14 @@ import ( var testdata = os.DirFS("testdata") // newTempDB copies the leases database file located in the testdata FS, under -// tb.Name()/leases.db, to a temporary directory and returns the path to the +// tb.Name()/leases.json, to a temporary directory and returns the path to the // copied file. func newTempDB(tb testing.TB) (dst string) { tb.Helper() const filename = "leases.json" - data, err := fs.ReadFile(testdata, filepath.Join(tb.Name(), filename)) + data, err := fs.ReadFile(testdata, path.Join(tb.Name(), filename)) require.NoError(tb, err) dst = filepath.Join(tb.TempDir(), filename)