diff --git a/dante.go b/dante.go index dfa7e87..5fdf9bc 100644 --- a/dante.go +++ b/dante.go @@ -75,17 +75,6 @@ func (t *Tendrils) handlePTPPacket(ifaceName string, srcIP net.IP, data []byte) t.nodes.SetDanteClockMaster(srcIP) } -func (n *Nodes) UpdateDante(name string, ip net.IP, arcPort int) { - if n.t.DebugDante { - log.Printf("[dante] mdns response: %s -> %s (arc port %d)", name, ip, arcPort) - } - n.Update(nil, nil, []net.IP{ip}, "", name, "dante") - - if arcPort > 0 { - go n.t.probeDanteDeviceWithPort(ip, arcPort) - } -} - func (n *Nodes) UpdateDanteTxChannels(name string, ip net.IP, channels string) { n.mu.Lock() defer n.mu.Unlock() diff --git a/mdns.go b/mdns.go index d57a372..91ec2ff 100644 --- a/mdns.go +++ b/mdns.go @@ -14,30 +14,6 @@ const ( mdnsAddr = "224.0.0.251:5353" ) -func extractDanteName(s string) string { - var name string - for _, prefix := range []string{"._netaudio-", "._dante"} { - if idx := strings.Index(s, prefix); idx > 0 { - name = s[:idx] - break - } - } - if name == "" { - return "" - } - if at := strings.LastIndex(name, "@"); at >= 0 { - name = name[at+1:] - } - if strings.Contains(name, ".in-addr") { - return "" - } - return name -} - -func isDanteService(s string) bool { - return strings.Contains(s, "_netaudio-") || strings.Contains(s, "._dante") -} - func isSkaarhojService(s string) bool { return strings.Contains(s, "_skaarhoj._tcp") } @@ -109,8 +85,6 @@ func (t *Tendrils) processMDNSResponse(ifaceName string, srcIP net.IP, msg *dns. aRecords := map[string]net.IP{} srvTargets := map[string]string{} - danteNames := map[string]bool{} - danteARCPorts := map[string]uint16{} skaarhojNames := map[string]bool{} for _, rr := range allRecords { @@ -121,12 +95,6 @@ func (t *Tendrils) processMDNSResponse(ifaceName string, srcIP net.IP, msg *dns. case *dns.AAAA: continue case *dns.PTR: - if isDanteService(r.Hdr.Name) { - name := extractDanteName(r.Ptr) - if name != "" { - danteNames[name] = true - } - } if isSkaarhojService(r.Ptr) { name := extractSkaarhojName(r.Ptr) if name != "" { @@ -135,18 +103,6 @@ func (t *Tendrils) processMDNSResponse(ifaceName string, srcIP net.IP, msg *dns. } case *dns.SRV: target := strings.TrimSuffix(r.Target, ".") - if isDanteService(r.Hdr.Name) { - name := extractDanteName(r.Hdr.Name) - if name != "" { - danteNames[name] = true - if target != "" { - srvTargets[name] = target - } - if strings.Contains(r.Hdr.Name, "_netaudio-arc.") && r.Port > 0 { - danteARCPorts[name] = r.Port - } - } - } if isSkaarhojService(r.Hdr.Name) { name := extractSkaarhojName(r.Hdr.Name) if name != "" { @@ -159,21 +115,6 @@ func (t *Tendrils) processMDNSResponse(ifaceName string, srcIP net.IP, msg *dns. } } - for name := range danteNames { - var ip net.IP - if target, ok := srvTargets[name]; ok { - ip = aRecords[target] - } - if ip == nil { - ip = aRecords[name+".local"] - } - if ip == nil { - ip = srcIP - } - arcPort := int(danteARCPorts[name]) - t.nodes.UpdateDante(name, ip, arcPort) - } - for name := range skaarhojNames { var ip net.IP if target, ok := srvTargets[name]; ok { @@ -188,7 +129,7 @@ func (t *Tendrils) processMDNSResponse(ifaceName string, srcIP net.IP, msg *dns. t.nodes.Update(nil, nil, []net.IP{ip}, "", name, "skaarhoj") } - if len(danteNames) == 0 && len(skaarhojNames) == 0 { + if len(skaarhojNames) == 0 { for aName, ip := range aRecords { hostname := strings.TrimSuffix(aName, ".local") if hostname != "" && hostname != aName { @@ -203,12 +144,7 @@ func (t *Tendrils) processMDNSResponse(ifaceName string, srcIP net.IP, msg *dns. var mdnsServices = []string{ "_services._dns-sd._udp.local.", - "_netaudio-arc._udp.local.", - "_netaudio-cmc._udp.local.", - "_netaudio-dbc._udp.local.", - "_netaudio-chan._udp.local.", - "_dantevideo._udp.local.", - "_danteancil._udp.local.", + "_skaarhoj._tcp.local.", } func (t *Tendrils) runMDNSQuerier(ctx context.Context, iface net.Interface, conn *net.UDPConn) {