Apply go fix modernizations

This commit is contained in:
Ian Gulliver
2026-03-05 11:39:14 -08:00
parent 9c2787a200
commit 8f83c1c8e9
4 changed files with 13 additions and 28 deletions

View File

@@ -60,10 +60,7 @@ func FuzzBuildParseRoundtrip(f *testing.F) {
if dataPkt.Universe != universe { if dataPkt.Universe != universe {
t.Fatalf("universe mismatch: sent %d, got %d", universe, dataPkt.Universe) t.Fatalf("universe mismatch: sent %d, got %d", universe, dataPkt.Universe)
} }
expectedLen := len(dmxInput) expectedLen := min(len(dmxInput), 512)
if expectedLen > 512 {
expectedLen = 512
}
if !bytes.Equal(dataPkt.Data[:expectedLen], dmxInput[:expectedLen]) { if !bytes.Equal(dataPkt.Data[:expectedLen], dmxInput[:expectedLen]) {
t.Fatalf("dmx data mismatch") t.Fatalf("dmx data mismatch")
} }

View File

@@ -58,7 +58,7 @@ func MulticastAddr(universe uint16) *net.UDPAddr {
} }
} }
func ParsePacket(data []byte) (interface{}, error) { func ParsePacket(data []byte) (any, error) {
if len(data) < 22 { if len(data) < 22 {
return nil, ErrPacketTooShort return nil, ErrPacketTooShort
} }
@@ -99,10 +99,7 @@ func parseDataPacket(data []byte) (*DataPacket, error) {
return nil, ErrPacketTooShort return nil, ErrPacketTooShort
} }
dmxLen := int(propCount) - 1 dmxLen := min(int(propCount)-1, 512)
if dmxLen > 512 {
dmxLen = 512
}
if len(data) < 126+dmxLen { if len(data) < 126+dmxLen {
return nil, ErrPacketTooShort return nil, ErrPacketTooShort
@@ -121,7 +118,7 @@ func parseDataPacket(data []byte) (*DataPacket, error) {
return pkt, nil return pkt, nil
} }
func parseExtendedPacket(data []byte) (interface{}, error) { func parseExtendedPacket(data []byte) (any, error) {
if len(data) < 118 { if len(data) < 118 {
return nil, ErrPacketTooShort return nil, ErrPacketTooShort
} }
@@ -149,7 +146,7 @@ func parseExtendedPacket(data []byte) (interface{}, error) {
universeCount := (len(data) - 120) / 2 universeCount := (len(data) - 120) / 2
pkt.Universes = make([]uint16, 0, universeCount) pkt.Universes = make([]uint16, 0, universeCount)
for i := 0; i < universeCount; i++ { for i := range universeCount {
u := binary.BigEndian.Uint16(data[120+i*2 : 122+i*2]) u := binary.BigEndian.Uint16(data[120+i*2 : 122+i*2])
if u >= 1 && u <= 63999 { if u >= 1 && u <= 63999 {
pkt.Universes = append(pkt.Universes, u) pkt.Universes = append(pkt.Universes, u)
@@ -160,10 +157,7 @@ func parseExtendedPacket(data []byte) (interface{}, error) {
} }
func BuildDataPacket(universe uint16, sequence uint8, sourceName string, cid [16]byte, data []byte) []byte { func BuildDataPacket(universe uint16, sequence uint8, sourceName string, cid [16]byte, data []byte) []byte {
dataLen := len(data) dataLen := min(len(data), 512)
if dataLen > 512 {
dataLen = 512
}
pktLen := 126 + dataLen pktLen := 126 + dataLen
buf := make([]byte, pktLen) buf := make([]byte, pktLen)
@@ -200,10 +194,7 @@ func BuildDataPacket(universe uint16, sequence uint8, sourceName string, cid [16
} }
func BuildDiscoveryPacket(sourceName string, cid [16]byte, page, lastPage uint8, universes []uint16) []byte { func BuildDiscoveryPacket(sourceName string, cid [16]byte, page, lastPage uint8, universes []uint16) []byte {
universeCount := len(universes) universeCount := min(len(universes), 512)
if universeCount > 512 {
universeCount = 512
}
pktLen := 120 + universeCount*2 pktLen := 120 + universeCount*2
buf := make([]byte, pktLen) buf := make([]byte, pktLen)

View File

@@ -9,7 +9,7 @@ import (
type Receiver struct { type Receiver struct {
conn *multicast.Conn conn *multicast.Conn
handler func(src *net.UDPAddr, pkt interface{}) handler func(src *net.UDPAddr, pkt any)
done chan struct{} done chan struct{}
} }
@@ -60,7 +60,7 @@ func NewDiscoveryReceiver(iface *net.Interface) (*Receiver, error) {
}, nil }, nil
} }
func (r *Receiver) SetHandler(fn func(src *net.UDPAddr, pkt interface{})) { func (r *Receiver) SetHandler(fn func(src *net.UDPAddr, pkt any)) {
r.handler = fn r.handler = fn
} }

View File

@@ -3,7 +3,7 @@ package sacn
import ( import (
"crypto/rand" "crypto/rand"
"net" "net"
"sort" "slices"
"sync" "sync"
"time" "time"
@@ -128,17 +128,14 @@ func (s *Sender) sendDiscovery() {
return return
} }
sort.Slice(universes, func(i, j int) bool { return universes[i] < universes[j] }) slices.Sort(universes)
const maxPerPage = 512 const maxPerPage = 512
totalPages := (len(universes) + maxPerPage - 1) / maxPerPage totalPages := (len(universes) + maxPerPage - 1) / maxPerPage
for page := 0; page < totalPages; page++ { for page := range totalPages {
start := page * maxPerPage start := page * maxPerPage
end := start + maxPerPage end := min(start+maxPerPage, len(universes))
if end > len(universes) {
end = len(universes)
}
pkt := BuildDiscoveryPacket(s.sourceName, s.cid, uint8(page), uint8(totalPages-1), universes[start:end]) pkt := BuildDiscoveryPacket(s.sourceName, s.cid, uint8(page), uint8(totalPages-1), universes[start:end])
s.conn.WriteToUDP(pkt, DiscoveryAddr) s.conn.WriteToUDP(pkt, DiscoveryAddr)
} }