add mdns hostname discovery and artnet universe tracking

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Ian Gulliver
2026-01-22 23:59:32 -08:00
parent 7bced7b350
commit 536c2d3dc9
7 changed files with 570 additions and 16 deletions

View File

@@ -13,23 +13,29 @@ import (
type Tendrils struct {
activeInterfaces map[string]context.CancelFunc
nodes *Nodes
artnet *ArtNetNodes
Interface string
DisableARP bool
DisableLLDP bool
DisableSNMP bool
DisableIGMP bool
LogEvents bool
LogNodes bool
DebugARP bool
DebugLLDP bool
DebugSNMP bool
DebugIGMP bool
Interface string
DisableARP bool
DisableLLDP bool
DisableSNMP bool
DisableIGMP bool
DisableMDNS bool
DisableArtNet bool
LogEvents bool
LogNodes bool
DebugARP bool
DebugLLDP bool
DebugSNMP bool
DebugIGMP bool
DebugMDNS bool
DebugArtNet bool
}
func New() *Tendrils {
t := &Tendrils{
activeInterfaces: map[string]context.CancelFunc{},
artnet: NewArtNetNodes(),
}
t.nodes = NewNodes(t)
return t
@@ -183,4 +189,10 @@ func (t *Tendrils) startInterface(ctx context.Context, iface net.Interface) {
if !t.DisableIGMP {
go t.listenIGMP(ctx, iface)
}
if !t.DisableMDNS {
go t.listenMDNS(ctx, iface)
}
if !t.DisableArtNet {
go t.listenArtNet(ctx, iface)
}
}