Update linter for golang v1.25 compatibility

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
Jonathon Anderson
2026-03-10 19:55:51 -06:00
committed by Christian Goll
parent 019408d076
commit 081d2ec61e
48 changed files with 156 additions and 115 deletions

View File

@@ -47,7 +47,7 @@ func NodeStatus(nodeNames []string) (nodeStatusResponse *wwapiv1.NodeStatusRespo
wwlog.Error("Could not connect to Warewulf server: %s", err)
return
}
defer resp.Body.Close()
defer func() { _ = resp.Body.Close() }()
decoder := json.NewDecoder(resp.Body)
var wwNodeStatus allStatus

View File

@@ -234,7 +234,7 @@ func (config *WarewulfYaml) Dump() ([]byte, error) {
return buf.Bytes(), err
}
func (config *WarewulfYaml) PersistToFile(configFile string) error {
func (config *WarewulfYaml) PersistToFile(configFile string) (err error) {
out, dumpErr := config.Dump()
if dumpErr != nil {
wwlog.Error("%s", dumpErr)
@@ -245,7 +245,11 @@ func (config *WarewulfYaml) PersistToFile(configFile string) error {
wwlog.Error("%s", err)
return err
}
defer file.Close()
defer func() {
if cerr := file.Close(); cerr != nil && err == nil {
err = cerr
}
}()
_, err = file.WriteString(string(out))
if err != nil {
return err

View File

@@ -305,7 +305,7 @@ func TestInitializedFromFile(t *testing.T) {
example_warewulf_conf := ""
tempWarewulfConf, warewulfConfErr := os.CreateTemp("", "warewulf.conf-")
assert.NoError(t, warewulfConfErr)
defer os.Remove(tempWarewulfConf.Name())
defer func() { _ = os.Remove(tempWarewulfConf.Name()) }()
_, warewulfConfErr = tempWarewulfConf.Write([]byte(example_warewulf_conf))
assert.NoError(t, warewulfConfErr)
assert.NoError(t, tempWarewulfConf.Sync())

View File

@@ -10,7 +10,7 @@ func GetOutboundIP() net.IP {
if err != nil {
return nil
}
defer conn.Close()
defer func() { _ = conn.Close() }()
localAddr := conn.LocalAddr().(*net.UDPAddr)
return localAddr.IP
}

View File

@@ -29,7 +29,7 @@ func TFTP() (err error) {
}
// Create tftpdir if needed
var tftpdir string = path.Join(controller.TFTP.TftpRoot, "warewulf")
tftpdir := path.Join(controller.TFTP.TftpRoot, "warewulf")
err = os.MkdirAll(tftpdir, 0755)
if err != nil {
return

View File

@@ -14,7 +14,7 @@ func TestFindInitramfs(t *testing.T) {
conf := warewulfconf.Get()
temp, err := os.MkdirTemp(os.TempDir(), "ww-conf-*")
assert.NoError(t, err)
defer os.RemoveAll(temp)
defer func() { _ = os.RemoveAll(temp) }()
conf.Paths.WWChrootdir = temp
assert.NoError(t, os.MkdirAll(filepath.Join(RootFsDir("image"), "boot"), 0700))

View File

@@ -23,9 +23,10 @@ func InitMountPnts(binds []string) (mounts []*warewulfconf.MountEntry) {
readonly := false
copy_ := false
if len(bind) >= 3 {
if bind[2] == "ro" {
switch bind[2] {
case "ro":
readonly = true
} else if bind[2] == "copy" {
case "copy":
copy_ = true
}
}

View File

@@ -20,9 +20,9 @@ func writeTempFile(t *testing.T, input string) string {
func makeSyncDB(t *testing.T, hostInput string, imageInput string) syncDB {
hostFileName := writeTempFile(t, hostInput)
defer os.Remove(hostFileName)
defer func() { _ = os.Remove(hostFileName) }()
imageFileName := writeTempFile(t, imageInput)
defer os.Remove(imageFileName)
defer func() { _ = os.Remove(imageFileName) }()
db := make(syncDB)
var err error
err = db.readFromHost(hostFileName)
@@ -34,7 +34,7 @@ func makeSyncDB(t *testing.T, hostInput string, imageInput string) syncDB {
func Test_readFromHost_single(t *testing.T) {
hostFileName := writeTempFile(t, `testuser:x:1001:1001::/home/testuser:/bin/bash`)
defer os.Remove(hostFileName)
defer func() { _ = os.Remove(hostFileName) }()
db := make(syncDB)
err := db.readFromHost(hostFileName)
@@ -50,7 +50,7 @@ func Test_readFromHost_multiple(t *testing.T) {
testuser1:x:1001:1001::/home/testuser:/bin/bash
testuser2:x:1002:1002::/home/testuser:/bin/bash
`)
defer os.Remove(hostFileName)
defer func() { _ = os.Remove(hostFileName) }()
db := make(syncDB)
err := db.readFromHost(hostFileName)
@@ -65,7 +65,7 @@ testuser2:x:1002:1002::/home/testuser:/bin/bash
func Test_readFromimage_single(t *testing.T) {
imageFileName := writeTempFile(t, `testuser:x:1001:1001::/home/testuser:/bin/bash`)
defer os.Remove(imageFileName)
defer func() { _ = os.Remove(imageFileName) }()
db := make(syncDB)
err := db.readFromimage(imageFileName)
@@ -81,7 +81,7 @@ func Test_readFromimage_multiple(t *testing.T) {
testuser1:x:1001:1001::/home/testuser:/bin/bash
testuser2:x:1002:1002::/home/testuser:/bin/bash
`)
defer os.Remove(imageFileName)
defer func() { _ = os.Remove(imageFileName) }()
db := make(syncDB)
err := db.readFromimage(imageFileName)
@@ -98,13 +98,13 @@ func Test_readFromBoth_multiple(t *testing.T) {
testuser1:x:1001:1001::/home/testuser:/bin/bash
testuser2:x:1002:1002::/home/testuser:/bin/bash
`)
defer os.Remove(imageFileName)
defer func() { _ = os.Remove(imageFileName) }()
hostFileName := writeTempFile(t, `
testuser1:x:2001:2001::/home/testuser:/bin/bash
testuser3:x:2003:2003::/home/testuser:/bin/bash
`)
defer os.Remove(hostFileName)
defer func() { _ = os.Remove(hostFileName) }()
db := make(syncDB)
var err error
@@ -150,13 +150,13 @@ func Test_getOnlyimageLines(t *testing.T) {
testuser1:x:1001:1001::/home/testuser:/bin/bash
testuser2:x:1002:1002::/home/testuser:/bin/bash
`)
defer os.Remove(imageFileName)
defer func() { _ = os.Remove(imageFileName) }()
hostFileName := writeTempFile(t, `
testuser1:x:2001:2001::/home/testuser:/bin/bash
testuser3:x:2003:2003::/home/testuser:/bin/bash
`)
defer os.Remove(hostFileName)
defer func() { _ = os.Remove(hostFileName) }()
db := make(syncDB)
var err error
@@ -265,7 +265,7 @@ func Test_malformed_passwd(t *testing.T) {
hostInput := `"testuser1:x:1001:1001::/home/testuser:/bin/bash"
asdf`
hostFileName := writeTempFile(t, hostInput)
defer os.Remove(hostFileName)
defer func() { _ = os.Remove(hostFileName) }()
db := make(syncDB)
err := db.readFromHost(hostFileName)
assert.NoError(t, err)
@@ -278,7 +278,7 @@ func Test_network_passwd(t *testing.T) {
+::::::
-::::::`
hostFileName := writeTempFile(t, hostInput)
defer os.Remove(hostFileName)
defer func() { _ = os.Remove(hostFileName) }()
db := make(syncDB)
err := db.readFromHost(hostFileName)
assert.NotContains(t, buf.String(), "parse error")

View File

@@ -160,7 +160,7 @@ func (db syncDB) read(fileName string, fromimage bool) error {
if file, err := os.Open(fileName); err != nil {
return err
} else {
defer file.Close()
defer func() { _ = file.Close() }()
fileScanner := bufio.NewScanner(file)
for fileScanner.Scan() {
line := fileScanner.Text()
@@ -293,7 +293,7 @@ func (db syncDB) getOnlyimageLines(fileName string) ([]string, error) {
if err != nil {
return nil, err
}
defer file.Close()
defer func() { _ = file.Close() }()
fileScanner := bufio.NewScanner(file)
var lines []string

View File

@@ -48,7 +48,7 @@ func (k collection) Default() *Kernel {
nk := append(collection{}, k...)
sort.Sort(sort.Reverse(nk))
for _, kernel := range nk {
if !(kernel.IsDebug() || kernel.IsRescue()) {
if !kernel.IsDebug() && !kernel.IsRescue() {
return kernel
}
}

View File

@@ -179,7 +179,7 @@ func (config *NodesYaml) MergeNode(id string) (node Node, fields fieldMap, err e
node.setIds(id)
node.valid = true
node.updatePrimaryNetDev()
node.Profile.cleanLists()
node.cleanLists()
return node, fields, nil
}

View File

@@ -113,7 +113,7 @@ func (config *NodesYaml) Persist() error {
return config.PersistToFile(warewulfconf.Get().Paths.NodesConf())
}
func (config *NodesYaml) PersistToFile(configFile string) error {
func (config *NodesYaml) PersistToFile(configFile string) (err error) {
if configFile == "" {
configFile = warewulfconf.Get().Paths.NodesConf()
}
@@ -127,7 +127,11 @@ func (config *NodesYaml) PersistToFile(configFile string) error {
wwlog.Error("%s", err)
return err
}
defer file.Close()
defer func() {
if cerr := file.Close(); cerr != nil && err == nil {
err = cerr
}
}()
_, err = file.WriteString(string(out))
if err != nil {
return err

View File

@@ -83,7 +83,7 @@ func Test_nodeYaml_FindByHwaddr(t *testing.T) {
t.Errorf("FindByHwaddr() error = %v, wantErr %v", err, tt.wantErr)
return
}
if !(got.id == tt.want) {
if got.id != tt.want {
t.Errorf("FindByHwaddr() got = %v, want %v", got, tt.want)
}
})
@@ -121,7 +121,7 @@ func Test_nodeYaml_FindByIpaddr(t *testing.T) {
t.Errorf("FindByIpaddr() error = %v, wantErr %v", err, tt.wantErr)
return
}
if !(got.id == tt.want) {
if got.id != tt.want {
t.Errorf("FindByHwaddr() got = %v, want %v", got, tt.want)
}
})

View File

@@ -20,6 +20,7 @@ import (
"github.com/opencontainers/umoci"
"github.com/opencontainers/umoci/oci/layer"
"github.com/warewulf/warewulf/internal/pkg/util"
"github.com/warewulf/warewulf/internal/pkg/wwlog"
)
type pullerOpt func(*puller) error
@@ -140,7 +141,11 @@ func (p *puller) Pull(ctx context.Context, uri, dst string) (err error) {
if err != nil {
return err
}
defer os.RemoveAll(tmpDir)
defer func() {
if err := os.RemoveAll(tmpDir); err != nil {
wwlog.Warn("failed to remove temporary directory %s: %s", tmpDir, err)
}
}()
// create an oci bundle our tmpdir to avoid issues with umoci.UnpackRootfs()
tmpRef, err := layout.ParseReference(tmpDir + ":" + "tmp")

View File

@@ -13,7 +13,7 @@ import (
func TestGetReference(t *testing.T) {
temp, err := os.MkdirTemp(os.TempDir(), "ww-archive-*")
assert.NoError(t, err)
defer os.RemoveAll(temp)
defer func() { _ = os.RemoveAll(temp) }()
tests := []struct {
name string

View File

@@ -45,7 +45,7 @@ func templateFileBlock(inc string, abortStr string) (string, error) {
wwlog.Info("couldn't read block %s: %s", inc, err)
return abortStr, nil
}
defer readFile.Close()
defer func() { _ = readFile.Close() }()
var cont string
fileScanner := bufio.NewScanner(readFile)
fileScanner.Split(bufio.ScanLines)

View File

@@ -238,7 +238,7 @@ func (overlay Overlay) Chmod(path string, mode uint64) (err error) {
}
}
fullPath := overlay.File(path)
if !(util.IsFile(fullPath) || util.IsDir(fullPath)) {
if !util.IsFile(fullPath) && !util.IsDir(fullPath) {
return fmt.Errorf("file does not exist within overlay: %s:%s", overlay.Name(), fullPath)
}
@@ -254,7 +254,7 @@ func (overlay Overlay) Chown(path string, uid, gid int) (err error) {
}
}
fullPath := overlay.File(path)
if !(util.IsFile(fullPath) || util.IsDir(fullPath)) {
if !util.IsFile(fullPath) && !util.IsDir(fullPath) {
return fmt.Errorf("file does not exist within overlay: %s:%s", overlay.Name(), fullPath)
}
return os.Chown(fullPath, uid, gid)
@@ -309,8 +309,8 @@ func (overlay Overlay) ParseVarFields(file string) map[string]FieldInfo {
// Initialize $ to refer to the root template context
rangeVars["$"] = rootType
if tmpl.Tree != nil && tmpl.Tree.Root != nil {
walkParseTree(tmpl.Tree.Root, rootType, "", rangeVars, result)
if tmpl.Tree != nil && tmpl.Root != nil {
walkParseTree(tmpl.Root, rootType, "", rangeVars, result)
}
return result
@@ -846,7 +846,7 @@ func BuildHostOverlay() error {
if err != nil {
return fmt.Errorf("could not build host overlay: %w ", err)
}
if !(stats.Mode() == os.FileMode(0o750|os.ModeDir) || stats.Mode() == os.FileMode(0o700|os.ModeDir)) {
if stats.Mode() != os.FileMode(0o750|os.ModeDir) && stats.Mode() != os.FileMode(0o700|os.ModeDir) {
wwlog.SecWarn("Permissions of host overlay dir %s are %s (750 is considered as secure)", hostdir.Rootfs(), stats.Mode())
}
registry, err := node.New()
@@ -918,7 +918,11 @@ func BuildOverlay(nodeConf node.Node, allNodes []node.Node, context string, over
if err != nil {
return fmt.Errorf("failed to create temporary directory for %s: %w", name, err)
}
defer os.RemoveAll(buildDir)
defer func() {
if err := os.RemoveAll(buildDir); err != nil {
wwlog.Warn("failed to remove temporary build directory %s: %s", buildDir, err)
}
}()
wwlog.Debug("Created temporary directory for %s: %s", name, buildDir)
@@ -1126,7 +1130,7 @@ func BuildOverlayIndir(nodeData node.Node, allNodes []node.Node, overlayNames []
/*
Writes buffer to the destination file. If wwbackup is set a wwbackup will be created.
*/
func CarefulWriteBuffer(destFile string, buffer bytes.Buffer, backupFile bool, perm fs.FileMode) error {
func CarefulWriteBuffer(destFile string, buffer bytes.Buffer, backupFile bool, perm fs.FileMode) (err error) {
wwlog.Debug("Trying to careful write file (%d bytes): %s", buffer.Len(), destFile)
if backupFile {
if !util.IsFile(destFile+".wwbackup") && util.IsFile(destFile) {
@@ -1140,7 +1144,11 @@ func CarefulWriteBuffer(destFile string, buffer bytes.Buffer, backupFile bool, p
if err != nil {
return fmt.Errorf("could not open new file for template %w", err)
}
defer w.Close()
defer func() {
if cerr := w.Close(); cerr != nil && err == nil {
err = fmt.Errorf("failed to close file %s: %w", destFile, cerr)
}
}()
_, err = buffer.WriteTo(w)
return err
}

View File

@@ -586,7 +586,7 @@ func Test_BuildAllOverlays(t *testing.T) {
conf := warewulfconf.Get()
overlayDir, overlayDirErr := os.MkdirTemp(os.TempDir(), "ww-test-overlay-*")
assert.NoError(t, overlayDirErr)
defer os.RemoveAll(overlayDir)
defer func() { _ = os.RemoveAll(overlayDir) }()
conf.Paths.WWOverlaydir = overlayDir
assert.NoError(t, os.Mkdir(path.Join(overlayDir, "o1"), 0o700))
assert.NoError(t, os.Mkdir(path.Join(overlayDir, "o2"), 0o700))
@@ -595,7 +595,7 @@ func Test_BuildAllOverlays(t *testing.T) {
t.Run(tt.description, func(t *testing.T) {
provisionDir, provisionDirErr := os.MkdirTemp(os.TempDir(), "ww-test-provision-*")
assert.NoError(t, provisionDirErr)
defer os.RemoveAll(provisionDir)
defer func() { _ = os.RemoveAll(provisionDir) }()
conf.Paths.WWProvisiondir = provisionDir
var nodes []node.Node
@@ -684,7 +684,7 @@ func Test_BuildSpecificOverlays(t *testing.T) {
conf := warewulfconf.Get()
overlayDir, overlayDirErr := os.MkdirTemp(os.TempDir(), "ww-test-overlay-*")
assert.NoError(t, overlayDirErr)
defer os.RemoveAll(overlayDir)
defer func() { _ = os.RemoveAll(overlayDir) }()
conf.Paths.WWOverlaydir = overlayDir
assert.NoError(t, os.Mkdir(path.Join(overlayDir, "o1"), 0o700))
assert.NoError(t, os.Mkdir(path.Join(overlayDir, "o2"), 0o700))
@@ -693,7 +693,7 @@ func Test_BuildSpecificOverlays(t *testing.T) {
t.Run(tt.description, func(t *testing.T) {
provisionDir, provisionDirErr := os.MkdirTemp(os.TempDir(), "ww-test-provision-*")
assert.NoError(t, provisionDirErr)
defer os.RemoveAll(provisionDir)
defer func() { _ = os.RemoveAll(provisionDir) }()
conf.Paths.WWProvisiondir = provisionDir
var nodes []node.Node
@@ -729,7 +729,7 @@ func Test_CreateOverlayFile(t *testing.T) {
conf := warewulfconf.Get()
overlayDir, overlayDirErr := os.MkdirTemp(os.TempDir(), "ww-test-overlay-*")
assert.NoError(t, overlayDirErr)
defer os.RemoveAll(overlayDir)
defer func() { _ = os.RemoveAll(overlayDir) }()
conf.Paths.WWOverlaydir = overlayDir
conf.Paths.Datadir = "/dev/null"
for _, tt := range tests {
@@ -757,7 +757,7 @@ func dirIsEmpty(t *testing.T, name string) bool {
t.Log(err)
return true
}
defer f.Close()
defer func() { _ = f.Close() }()
dirnames, err2 := f.Readdirnames(1)
if err2 == io.EOF {
@@ -773,7 +773,7 @@ func readCpio(name string) (headers map[string]*cpio.Header, err error) {
if err != nil {
return headers, err
}
defer f.Close()
defer func() { _ = f.Close() }()
reader := cpio.NewReader(f)
headers = make(map[string]*cpio.Header)

View File

@@ -175,7 +175,7 @@ func (env *TestEnv) WriteFile(fileName string, content string) {
f, err := os.Create(env.GetPath(fileName))
env.assertNoError(err)
defer f.Close()
defer func() { _ = f.Close() }()
_, err = f.WriteString(content)
env.assertNoError(err)
err = os.Chtimes(env.GetPath(fileName),

View File

@@ -7,7 +7,7 @@ import (
"github.com/warewulf/warewulf/internal/pkg/wwlog"
)
func CopyFile(src string, dst string) error {
func CopyFile(src string, dst string) (err error) {
wwlog.Debug("Copying '%s' to '%s'", src, dst)
@@ -17,7 +17,7 @@ func CopyFile(src string, dst string) error {
wwlog.Debug("Could not open source file %s: %s", src, err)
return err
}
defer srcFD.Close()
defer func() { _ = srcFD.Close() }()
srcInfo, err := srcFD.Stat()
if err != nil {
@@ -30,7 +30,11 @@ func CopyFile(src string, dst string) error {
wwlog.Debug("Could not create destination file %s: %s", dst, err)
return err
}
defer dstFD.Close()
defer func() {
if cerr := dstFD.Close(); cerr != nil && err == nil {
err = cerr
}
}()
bytes, err := io.Copy(dstFD, srcFD)
if err != nil {

View File

@@ -125,7 +125,7 @@ func ReadFile(path string) ([]string, error) {
for scanner.Scan() {
lines = append(lines, scanner.Text())
}
f.Close()
_ = f.Close()
return lines, nil
}
@@ -319,8 +319,8 @@ func CopyUIDGID(source string, dest string) error {
}
// root is always good, if we failt to get UID/GID of a file
var UID int = 0
var GID int = 0
var UID = 0
var GID = 0
if stat, ok := info.Sys().(*syscall.Stat_t); ok {
UID = int(stat.Uid)
GID = int(stat.Gid)
@@ -345,16 +345,20 @@ func IncrementIPv4(start net.IP, inc uint) net.IP {
/*
Appending the lines to the given file
*/
func AppendLines(fileName string, lines []string) error {
func AppendLines(fileName string, lines []string) (err error) {
wwlog.Verbose("appending %v lines to %s", len(lines), fileName)
file, err := os.OpenFile(fileName, os.O_APPEND|os.O_WRONLY, 0o644)
if err != nil {
return fmt.Errorf("can't open file: %s: %w", fileName, err)
}
defer file.Close()
defer func() {
if cerr := file.Close(); cerr != nil && err == nil {
err = cerr
}
}()
for _, line := range lines {
wwlog.Debug("Appending '%s' to %s", line, fileName)
if _, err := file.WriteString(fmt.Sprintf("%s\n", line)); err != nil {
if _, err := fmt.Fprintf(file, "%s\n", line); err != nil {
return fmt.Errorf("can't write to file: %s: %w", fileName, err)
}
@@ -393,7 +397,7 @@ func CpioCreate(
err_in := make(chan error, 1)
go func() {
defer stdin.Close()
defer func() { _ = stdin.Close() }()
_, err := io.WriteString(stdin, strings.Join(ifiles, "\n"))
err_in <- err
}()
@@ -475,14 +479,16 @@ func FileGz(
err = proc.Start()
if err != nil {
_ = proc.Wait()
gzippedFile.Close()
os.Remove(file_gz)
_ = gzippedFile.Close()
_ = os.Remove(file_gz)
err = fmt.Errorf("unable to successfully execute compression program: %s: %w", compressor, err)
} else {
err = proc.Wait()
gzippedFile.Close()
if cerr := gzippedFile.Close(); cerr != nil {
wwlog.Warn("failed to close compressed image file %s: %s", file_gz, cerr)
}
if err != nil {
os.Remove(file_gz)
_ = os.Remove(file_gz)
err = fmt.Errorf("unable to successfully create compressed image file: %s: %w", file_gz, err)
} else {
wwlog.Verbose("Successfully compressed image file: %s", file_gz)

View File

@@ -119,7 +119,7 @@ func (of *OverlayFile) readContents() (string, error) {
}
func (of *OverlayFile) renderContents(nodeName string) (string, error) {
if !(path.Ext(of.Path) == ".ww") {
if path.Ext(of.Path) != ".ww" {
return "", fmt.Errorf("'%s' does not end with '.ww'", of.Path)
}
@@ -329,7 +329,7 @@ func addOverlayFile() usecase.Interactor {
return err
}
}
if err := overlay_.AddFile(relPath, []byte(input.Content), true, !(input.IfNoneMatch == "*")); err != nil {
if err := overlay_.AddFile(relPath, []byte(input.Content), true, input.IfNoneMatch != "*"); err != nil {
return fmt.Errorf("unable to add overlay file %v: %v: %w", input.Name, relPath, err)
}
*output = *NewOverlayResponse(input.Name)

View File

@@ -186,7 +186,7 @@ nodes:
w := httptest.NewRecorder()
HandleRuntimeOverlay(w, req)
res := w.Result()
defer res.Body.Close()
defer func() { _ = res.Body.Close() }()
data, readErr := io.ReadAll(res.Body)
assert.NoError(t, readErr)

View File

@@ -99,7 +99,7 @@ nodes:
w := httptest.NewRecorder()
HandleProvision(w, req)
res := w.Result()
defer res.Body.Close()
defer func() { _ = res.Body.Close() }()
data, readErr := io.ReadAll(res.Body)
assert.NoError(t, readErr)

View File

@@ -37,7 +37,7 @@ type slashFix struct {
Filter out the '//'
*/
func (h *slashFix) ServeHTTP(w http.ResponseWriter, r *http.Request) {
r.URL.Path = strings.Replace(r.URL.Path, "//", "/", -1)
r.URL.Path = strings.ReplaceAll(r.URL.Path, "//", "/")
h.mux.ServeHTTP(w, r)
}

View File

@@ -24,7 +24,7 @@ func sendFile(
w.WriteHeader(http.StatusInternalServerError)
return err
}
defer fd.Close()
defer func() { _ = fd.Close() }()
stat, err := fd.Stat()
if err != nil {
@@ -40,7 +40,7 @@ func sendFile(
fd)
wwlog.Info("send %s -> %s", filename, sendto)
req.Body.Close()
_ = req.Body.Close()
return nil
}
@@ -100,7 +100,7 @@ func ArpFind(ip string) (mac string) {
if err != nil {
return
}
defer arpCache.Close()
defer func() { _ = arpCache.Close() }()
scanner := bufio.NewScanner(arpCache)
scanner.Scan()

View File

@@ -205,9 +205,9 @@ func LogCaller(level int, skip int, err error, message string, a ...interface{})
message = logFormatter(logLevel, &rec)
if level == INFO || level == OUT {
fmt.Fprint(logOut, message)
_, _ = fmt.Fprint(logOut, message)
} else {
fmt.Fprint(logErr, message)
_, _ = fmt.Fprint(logErr, message)
}
}

View File

@@ -250,7 +250,7 @@ func Test_Log(t *testing.T) {
outCh <- string(out)
}()
w.Close()
_ = w.Close()
os.Stderr = oldErr
out := <-outCh
if tt.exactMatch {