enable errcheck linter

This commit is contained in:
onyx-and-iris 2026-02-15 15:12:29 +00:00
parent c8cfef858c
commit 4ed567e464
5 changed files with 31 additions and 9 deletions

View File

@ -6,7 +6,7 @@ run:
go: '1.24' go: '1.24'
linters: linters:
disable: [dupl, errcheck] disable: [dupl]
enable: enable:
# Default enabled linters # Default enabled linters
- errcheck # Check for unchecked errors - errcheck # Check for unchecked errors
@ -38,6 +38,12 @@ linters:
errcheck: errcheck:
check-type-assertions: true check-type-assertions: true
check-blank: true check-blank: true
exclude-functions:
- fmt.Fprintf
- fmt.Fprintln
- fmt.Printf
- fmt.Println
- fmt.Errorf
revive: revive:
severity: warning severity: warning

View File

@ -107,7 +107,11 @@ func run(ctx *kong.Context, config Config) error {
if err != nil { if err != nil {
return fmt.Errorf("failed to connect to X32 device: %w", err) return fmt.Errorf("failed to connect to X32 device: %w", err)
} }
defer client.Close() defer func() {
if err := client.Close(); err != nil {
log.Errorf("failed to close client connection: %v", err)
}
}()
client.StartListening() client.StartListening()
resp, err := client.RequestInfo() resp, err := client.RequestInfo()
@ -132,7 +136,7 @@ func connect(config Config) (*xair.X32Client, error) {
xair.WithTimeout(config.Timeout), xair.WithTimeout(config.Timeout),
) )
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("failed to create X32 client: %w", err)
} }
return client, nil return client, nil

View File

@ -105,7 +105,11 @@ func run(ctx *kong.Context, config Config) error {
if err != nil { if err != nil {
return fmt.Errorf("failed to connect to X-Air device: %w", err) return fmt.Errorf("failed to connect to X-Air device: %w", err)
} }
defer client.Close() defer func() {
if err := client.Close(); err != nil {
log.Errorf("failed to close client connection: %v", err)
}
}()
client.StartListening() client.StartListening()
resp, err := client.RequestInfo() resp, err := client.RequestInfo()
@ -130,7 +134,7 @@ func connect(config Config) (*xair.XAirClient, error) {
xair.WithTimeout(config.Timeout), xair.WithTimeout(config.Timeout),
) )
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("failed to create X-Air client: %w", err)
} }
return client, nil return client, nil

View File

@ -87,11 +87,14 @@ func (c *client) StartListening() {
} }
// Close stops the client and closes the connection. // Close stops the client and closes the connection.
func (c *client) Close() { func (c *client) Close() error {
close(c.done) close(c.done)
if c.conn != nil { if c.conn != nil {
c.conn.Close() if err := c.conn.Close(); err != nil {
return fmt.Errorf("failed to close connection: %w", err)
}
} }
return nil
} }
// SendMessage sends an OSC message to the mixer using the unified connection. // SendMessage sends an OSC message to the mixer using the unified connection.

View File

@ -45,7 +45,9 @@ func newEngine(
mixerAddr, err := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", mixerIP, mixerPort)) mixerAddr, err := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", mixerIP, mixerPort))
if err != nil { if err != nil {
conn.Close() if err := conn.Close(); err != nil {
log.Errorf("failed to close UDP connection: %v", err)
}
return nil, fmt.Errorf("failed to resolve mixer address: %w", err) return nil, fmt.Errorf("failed to resolve mixer address: %w", err)
} }
@ -78,7 +80,10 @@ func (e *engine) receiveLoop() {
return return
default: default:
// Set a short read deadline to prevent blocking indefinitely // Set a short read deadline to prevent blocking indefinitely
e.conn.SetReadDeadline(time.Now().Add(100 * time.Millisecond)) if err := e.conn.SetReadDeadline(time.Now().Add(100 * time.Millisecond)); err != nil {
log.Errorf("Failed to set read deadline: %v", err)
continue
}
n, _, err := e.conn.ReadFromUDP(buffer) n, _, err := e.conn.ReadFromUDP(buffer)
if err != nil { if err != nil {
var netErr net.Error var netErr net.Error