Apply go fix modernizations

This commit is contained in:
Ian Gulliver
2026-03-05 11:39:12 -08:00
parent 8f14a4f373
commit e12f7a04b8
4 changed files with 34 additions and 63 deletions

View File

@@ -2,7 +2,7 @@ package artnet
import ( import (
"net" "net"
"sort" "slices"
"sync" "sync"
"time" "time"
) )
@@ -180,16 +180,13 @@ func (d *Discovery) sendPollReplies(dst *net.UDPAddr, universes []Universe, isIn
for k := range groups { for k := range groups {
keys = append(keys, k) keys = append(keys, k)
} }
sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] }) slices.Sort(keys)
for _, key := range keys { for _, key := range keys {
univs := groups[key] univs := groups[key]
sort.Slice(univs, func(i, j int) bool { return univs[i] < univs[j] }) slices.Sort(univs)
for i := 0; i < len(univs); i += 4 { for i := 0; i < len(univs); i += 4 {
end := i + 4 end := min(i+4, len(univs))
if end > len(univs) {
end = len(univs)
}
chunk := univs[i:end] chunk := univs[i:end]
pkt := BuildPollReplyPacket(d.localIP, d.localMAC, d.shortName, d.longName, chunk, isInput) pkt := BuildPollReplyPacket(d.localIP, d.localMAC, d.shortName, d.longName, chunk, isInput)
d.receiver.SendTo(pkt, dst) d.receiver.SendTo(pkt, dst)
@@ -204,11 +201,8 @@ func (d *Discovery) GetNodesForUniverse(universe Universe) []*Node {
var result []*Node var result []*Node
for _, node := range d.nodes { for _, node := range d.nodes {
for _, u := range node.Outputs { if slices.Contains(node.Outputs, universe) {
if u == universe {
result = append(result, node) result = append(result, node)
break
}
} }
} }
return result return result
@@ -226,10 +220,5 @@ func (d *Discovery) GetAllNodes() []*Node {
} }
func containsUniverse(slice []Universe, val Universe) bool { func containsUniverse(slice []Universe, val Universe) bool {
for _, v := range slice { return slices.Contains(slice, val)
if v == val {
return true
}
}
return false
} }

View File

@@ -77,20 +77,14 @@ func FuzzDMXRoundtrip(f *testing.F) {
if dmx.Universe != universe { if dmx.Universe != universe {
t.Fatalf("universe mismatch: sent %v, got %v", universe, dmx.Universe) t.Fatalf("universe mismatch: sent %v, got %v", universe, dmx.Universe)
} }
expectedLen := len(dmxInput) expectedLen := min(len(dmxInput), 512)
if expectedLen > 512 {
expectedLen = 512
}
if expectedLen%2 != 0 { if expectedLen%2 != 0 {
expectedLen++ expectedLen++
} }
if int(dmx.Length) != expectedLen { if int(dmx.Length) != expectedLen {
t.Fatalf("length mismatch: expected %d, got %d", expectedLen, dmx.Length) t.Fatalf("length mismatch: expected %d, got %d", expectedLen, dmx.Length)
} }
compareLen := len(dmxInput) compareLen := min(len(dmxInput), 512)
if compareLen > 512 {
compareLen = 512
}
if !bytes.Equal(dmx.Data[:compareLen], dmxInput[:compareLen]) { if !bytes.Equal(dmx.Data[:compareLen], dmxInput[:compareLen]) {
t.Fatal("dmx data mismatch") t.Fatal("dmx data mismatch")
} }

View File

@@ -94,7 +94,7 @@ func InterfaceBroadcast(iface net.Interface) *net.UDPAddr {
} }
bcast := make(net.IP, 4) bcast := make(net.IP, 4)
for i := 0; i < 4; i++ { for i := range 4 {
bcast[i] = ip4[i] | ^ipnet.Mask[i] bcast[i] = ip4[i] | ^ipnet.Mask[i]
} }
return &net.UDPAddr{IP: bcast, Port: Port} return &net.UDPAddr{IP: bcast, Port: Port}

View File

@@ -119,10 +119,7 @@ func (p *PollReplyPacket) GetLongName() string {
} }
func (p *PollReplyPacket) NumPorts() int { func (p *PollReplyPacket) NumPorts() int {
n := int(p.NumPortsLo) n := min(int(p.NumPortsLo), 4)
if n > 4 {
n = 4
}
return n return n
} }
@@ -148,7 +145,7 @@ func (p *PollReplyPacket) OutputUniverses() []Universe {
return result return result
} }
func ParsePacket(data []byte) (uint16, interface{}, error) { func ParsePacket(data []byte) (uint16, any, error) {
if len(data) < 10 { if len(data) < 10 {
return 0, nil, ErrPacketTooShort return 0, nil, ErrPacketTooShort
} }
@@ -187,10 +184,7 @@ func parseDMXPacket(data []byte) (*DMXPacket, error) {
Length: binary.BigEndian.Uint16(data[16:18]), Length: binary.BigEndian.Uint16(data[16:18]),
} }
dataLen := int(pkt.Length) dataLen := min(int(pkt.Length), 512)
if dataLen > 512 {
dataLen = 512
}
if len(data) >= 18+dataLen { if len(data) >= 18+dataLen {
copy(pkt.Data[:], data[18:18+dataLen]) copy(pkt.Data[:], data[18:18+dataLen])
} }
@@ -248,10 +242,7 @@ func parsePollReplyPacket(data []byte) (*PollReplyPacket, error) {
} }
func BuildDMXPacket(universe Universe, sequence uint8, data []byte) []byte { func BuildDMXPacket(universe Universe, sequence uint8, data []byte) []byte {
dataLen := len(data) dataLen := min(len(data), 512)
if dataLen > 512 {
dataLen = 512
}
if dataLen%2 != 0 { if dataLen%2 != 0 {
dataLen++ dataLen++
} }
@@ -295,10 +286,7 @@ func BuildPollReplyPacket(ip [4]byte, mac [6]byte, shortName, longName string, u
copy(buf[26:44], shortName) copy(buf[26:44], shortName)
copy(buf[44:108], longName) copy(buf[44:108], longName)
numPorts := len(universes) numPorts := min(len(universes), 4)
if numPorts > 4 {
numPorts = 4
}
buf[173] = byte(numPorts) buf[173] = byte(numPorts)
for i := 0; i < numPorts; i++ { for i := 0; i < numPorts; i++ {