Jelajahi Sumber

Fixed binding when not using udp multicast

Spencer Gardner 6 tahun lalu
induk
melakukan
468f783319
1 mengubah file dengan 6 tambahan dan 3 penghapusan
  1. 6 3
      udpManifold.go

+ 6 - 3
udpManifold.go

@@ -26,17 +26,20 @@ func startManifold(listenSocket *net.UDPConn, sendSockets []*net.UDPConn) error
 func openReceiveSocket(listenPort int, multicastGroup string) (*net.UDPConn, error) {
 	var err error
 	var listenSocket *net.UDPConn
-	var resolvedMulticastGroup *net.IPAddr
 	if len(multicastGroup) > 0 {
-		resolvedMulticastGroup, err = net.ResolveIPAddr("ip4", multicastGroup)
+		resolvedMulticastGroup, err := net.ResolveIPAddr("ip4", multicastGroup)
 		if err != nil {
 			return nil, err
 		}
 		listenSocket, err = net.ListenMulticastUDP("udp4", nil, &net.UDPAddr{
 			IP: resolvedMulticastGroup.IP, Zone: resolvedMulticastGroup.Zone, Port: listenPort})
 	} else {
+		resolvedIP, err := net.ResolveIPAddr("ip4", "0.0.0.0")
+		if err != nil {
+			return nil, err
+		}
 		listenSocket, err = net.ListenUDP("udp4", &net.UDPAddr{
-			IP: resolvedMulticastGroup.IP, Zone: resolvedMulticastGroup.Zone, Port: listenPort})
+			IP: resolvedIP.IP, Zone: resolvedIP.Zone, Port: listenPort})
 	}
 	if err != nil {
 		return nil, err