Update to use NewDiscoveryReceiver API

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Ian Gulliver
2026-01-29 21:55:20 -08:00
parent 762c0fc650
commit 7bfeb23947

View File

@@ -10,24 +10,14 @@ import (
) )
func (t *Tendrils) startSACNDiscoveryListener(ctx context.Context, iface net.Interface) { func (t *Tendrils) startSACNDiscoveryListener(ctx context.Context, iface net.Interface) {
receiver, err := sacn.NewReceiver("") receiver, err := sacn.NewDiscoveryReceiver(&iface)
if err != nil { if err != nil {
log.Printf("[ERROR] failed to create sacn receiver: %v", err) log.Printf("[ERROR] failed to create sacn discovery receiver on %s: %v", iface.Name, err)
return return
} }
defer receiver.Stop() defer receiver.Stop()
if err := receiver.JoinDiscovery(&iface); err != nil {
log.Printf("[ERROR] failed to join sacn discovery multicast on %s: %v", iface.Name, err)
return
}
// TODO: remove debug logging
log.Printf("[sacn] listening for discovery on %s", iface.Name)
receiver.SetHandler(func(src *net.UDPAddr, pkt interface{}) { receiver.SetHandler(func(src *net.UDPAddr, pkt interface{}) {
// TODO: remove debug logging
log.Printf("[sacn] received packet from %s", src)
if disc, ok := pkt.(*sacn.DiscoveryPacket); ok { if disc, ok := pkt.(*sacn.DiscoveryPacket); ok {
t.handleSACNDiscoveryPacket(src.IP, disc) t.handleSACNDiscoveryPacket(src.IP, disc)
} }
@@ -35,8 +25,6 @@ func (t *Tendrils) startSACNDiscoveryListener(ctx context.Context, iface net.Int
receiver.Start() receiver.Start()
<-ctx.Done() <-ctx.Done()
// TODO: remove debug logging
log.Printf("[sacn] discovery listener exiting on %s", iface.Name)
} }
func (t *Tendrils) handleSACNDiscoveryPacket(srcIP net.IP, pkt *sacn.DiscoveryPacket) { func (t *Tendrils) handleSACNDiscoveryPacket(srcIP net.IP, pkt *sacn.DiscoveryPacket) {