diff --git a/cmd/token_tesla.go b/cmd/token_tesla.go index d35f2e663..82cc1ac21 100644 --- a/cmd/token_tesla.go +++ b/cmd/token_tesla.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "os" "strings" @@ -82,7 +81,8 @@ func codePrompt(ctx context.Context, devices []tesla.Device) (tesla.Device, stri } func captchaPrompt(ctx context.Context, svg io.Reader) (string, error) { - tmpFile, err := ioutil.TempFile(os.TempDir(), "evcc-*.svg") + // tmpFile, err := ioutil.TempFile(os.TempDir(), "evcc-*.svg") + tmpFile, err := os.CreateTemp(os.TempDir(), "evcc-*.svg") if err != nil { return "", fmt.Errorf("cannot create temp file: %w", err) } diff --git a/detect/tasks/modbus.go b/detect/tasks/modbus.go index 568d3ea69..796145ca0 100644 --- a/detect/tasks/modbus.go +++ b/detect/tasks/modbus.go @@ -4,6 +4,8 @@ import ( "encoding/binary" "errors" "fmt" + "net" + "strconv" "time" "github.com/evcc-io/evcc/util" @@ -30,7 +32,7 @@ type ModbusResult struct { func (r *ModbusResult) Configuration(handler TaskHandler, res Result) map[string]interface{} { port := handler.(*ModbusHandler).Port cc := map[string]interface{}{ - "uri": fmt.Sprintf("%s:%d", res.ResultDetails.IP, port), + "uri": net.JoinHostPort(res.ResultDetails.IP, strconv.Itoa(port)), "model": "sunspec", "id": r.SlaveID, } @@ -179,7 +181,7 @@ func (h *ModbusHandler) Test(log *util.Logger, in ResultDetails) (res []ResultDe panic("modbus: invalid port") } - addr := fmt.Sprintf("%s:%d", in.IP, port) + addr := net.JoinHostPort(in.IP, strconv.Itoa(port)) conn := meters.NewTCP(addr) dev := sunspec.NewDevice("sunspec") diff --git a/detect/tasks/mqtt.go b/detect/tasks/mqtt.go index 3e8f450f7..9d3bda4e2 100644 --- a/detect/tasks/mqtt.go +++ b/detect/tasks/mqtt.go @@ -2,7 +2,8 @@ package tasks import ( "errors" - "fmt" + "net" + "strconv" "time" mqtt "github.com/eclipse/paho.mqtt.golang" @@ -36,10 +37,10 @@ type MqttHandler struct { } func (h *MqttHandler) Test(log *util.Logger, in ResultDetails) []ResultDetails { - broker := fmt.Sprintf("%s:%d", in.IP, h.Port) + addr := net.JoinHostPort(in.IP, strconv.Itoa(h.Port)) opt := mqtt.NewClientOptions() - opt.AddBroker(broker) + opt.AddBroker(addr) opt.SetConnectTimeout(timeout) client := mqtt.NewClient(opt) diff --git a/detect/tasks/tcp.go b/detect/tasks/tcp.go index 4bd4bf82e..76d4fab56 100644 --- a/detect/tasks/tcp.go +++ b/detect/tasks/tcp.go @@ -2,8 +2,8 @@ package tasks import ( "errors" - "fmt" "net" + "strconv" "time" "github.com/evcc-io/evcc/util" @@ -37,7 +37,7 @@ type TcpHandler struct { func (h *TcpHandler) Test(log *util.Logger, in ResultDetails) (res []ResultDetails) { for _, port := range h.Ports { - addr := fmt.Sprintf("%s:%d", in.IP, port) + addr := net.JoinHostPort(in.IP, strconv.Itoa(port)) conn, err := h.dialer.Dial("tcp", addr) if err == nil { defer conn.Close() diff --git a/server/uds.go b/server/uds.go index 4b40bda59..f775057af 100644 --- a/server/uds.go +++ b/server/uds.go @@ -4,6 +4,7 @@ package server import ( + "errors" "net" "net/http" "os" @@ -21,7 +22,7 @@ func removeIfExists(file string) { err = os.Remove(file) } - if err != nil && !os.IsNotExist(err) { + if err != nil && !errors.Is(err, os.ErrNotExist) { log.FATAL.Fatal(err) } } diff --git a/server/updater/gokrazy.go b/server/updater/gokrazy.go index 7f97e9361..7eb33f258 100644 --- a/server/updater/gokrazy.go +++ b/server/updater/gokrazy.go @@ -1,3 +1,4 @@ +//go:build gokrazy // +build gokrazy package updater @@ -29,7 +30,7 @@ var ( // unzipReader transparently unpacks zip files func unzipReader(file io.ReadCloser) (io.ReadCloser, error) { if unzipped, err := gzip.NewReader(file); err == nil { - return unzipped, err + return unzipped, nil } return file, nil diff --git a/util/net.go b/util/net.go index e9224dd0a..f61a9509f 100644 --- a/util/net.go +++ b/util/net.go @@ -4,13 +4,14 @@ import ( "fmt" "net" "net/url" + "strconv" "strings" ) // DefaultPort appends given port to connection if not specified func DefaultPort(conn string, port int) string { if _, _, err := net.SplitHostPort(conn); err != nil { - conn = fmt.Sprintf("%s:%d", conn, port) + conn = net.JoinHostPort(conn, strconv.Itoa(port)) } return conn diff --git a/vehicle/ovms.go b/vehicle/ovms.go index 4732b5630..969fecd1b 100644 --- a/vehicle/ovms.go +++ b/vehicle/ovms.go @@ -230,7 +230,7 @@ func (v *Ovms) FinishTime() (time.Time, error) { if res, ok := res.(ovmsChargeResponse); err == nil && ok { cef, err := strconv.ParseInt(res.ChargeEtrFull, 0, 64) if err == nil { - return time.Now().Add(time.Duration(cef) * time.Minute), err + return time.Now().Add(time.Duration(cef) * time.Minute), nil } }