Ver Fonte

Added ipv4 priority resolver for mdns

TC pushbot 5 há 2 anos atrás
pai
commit
5d33dfd8ff
1 ficheiros alterados com 20 adições e 4 exclusões
  1. 20 4
      mod/network/mdns/mdns.go

+ 20 - 4
mod/network/mdns/mdns.go

@@ -69,9 +69,25 @@ func NewMDNS(config NetworkHost, MacOverride string) (*MDNSHost, error) {
 			if strings.EqualFold(thisIfaceMac, strings.TrimSpace(MacOverride)) {
 				//This is the correct iface to use
 				overrideIface = &iface
-				addr, err := iface.Addrs()
-				if err == nil && len(addr) > 0 {
-					ifaceIp = addr[0].String()
+				addrs, err := iface.Addrs()
+
+				if err == nil && len(addrs) > 0 {
+					ifaceIp = addrs[0].String()
+				}
+
+				for _, addr := range addrs {
+					var ip net.IP
+					switch v := addr.(type) {
+					case *net.IPNet:
+						ip = v.IP
+					case *net.IPAddr:
+						ip = v.IP
+					}
+
+					if ip.To4() != nil {
+						//This NIC have Ipv4 addr
+						ifaceIp = ip.String()
+					}
 				}
 				foundMatching = true
 				break
@@ -81,7 +97,7 @@ func NewMDNS(config NetworkHost, MacOverride string) (*MDNSHost, error) {
 		if !foundMatching {
 			log.Println("[mDNS] Unable to find the target iface with MAC address: " + MacOverride + ". Resuming with default iface")
 		} else {
-			log.Println("[mDNS] Entering force MAC address mode, listening on: " + MacOverride + "( IP address: " + ifaceIp + ")")
+			log.Println("[mDNS] Entering force MAC address mode, listening on: " + MacOverride + "(IP address: " + ifaceIp + ")")
 		}
 	}