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

View File

@ -107,7 +107,11 @@ func run(ctx *kong.Context, config Config) error {
if err != nil {
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()
resp, err := client.RequestInfo()
@ -132,7 +136,7 @@ func connect(config Config) (*xair.X32Client, error) {
xair.WithTimeout(config.Timeout),
)
if err != nil {
return nil, err
return nil, fmt.Errorf("failed to create X32 client: %w", err)
}
return client, nil

View File

@ -105,7 +105,11 @@ func run(ctx *kong.Context, config Config) error {
if err != nil {
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()
resp, err := client.RequestInfo()
@ -130,7 +134,7 @@ func connect(config Config) (*xair.XAirClient, error) {
xair.WithTimeout(config.Timeout),
)
if err != nil {
return nil, err
return nil, fmt.Errorf("failed to create X-Air client: %w", err)
}
return client, nil

View File

@ -87,12 +87,15 @@ func (c *client) StartListening() {
}
// Close stops the client and closes the connection.
func (c *client) Close() {
func (c *client) Close() error {
close(c.done)
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.
func (c *client) SendMessage(address string, args ...any) error {

View File

@ -45,7 +45,9 @@ func newEngine(
mixerAddr, err := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", mixerIP, mixerPort))
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)
}
@ -78,7 +80,10 @@ func (e *engine) receiveLoop() {
return
default:
// 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)
if err != nil {
var netErr net.Error