From 83e6e5fb62f38f2ec5d029b295abb1d07f5501ad Mon Sep 17 00:00:00 2001 From: Kleissner Date: Tue, 16 Nov 2021 22:04:18 +0100 Subject: [PATCH] Additional error logging for multicast/broadcast --- Network IPv4 Broadcast.go | 1 + Network IPv6 Multicast.go | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Network IPv4 Broadcast.go b/Network IPv4 Broadcast.go index 1071b86..038e350 100644 --- a/Network IPv4 Broadcast.go +++ b/Network IPv4 Broadcast.go @@ -43,6 +43,7 @@ func (network *Network) BroadcastIPv4() (err error) { // listen on a special socket network.broadcastSocket, err = reuseport.ListenPacket("udp4", net.JoinHostPort(network.address.IP.String(), strconv.Itoa(ipv4BroadcastPort))) if err != nil { + Filters.LogError("BroadcastIPv4", "broadcast socket listen on IP '%s' port '%d': %v\n", network.address.IP.String(), ipv4BroadcastPort, err) return err } diff --git a/Network IPv6 Multicast.go b/Network IPv6 Multicast.go index 6e269ac..3144337 100644 --- a/Network IPv6 Multicast.go +++ b/Network IPv6 Multicast.go @@ -56,21 +56,21 @@ func (network *Network) MulticastIPv6Join() (err error) { // listen on a special socket network.multicastSocket, err = reuseport.ListenPacket("udp6", net.JoinHostPort(network.address.IP.String(), strconv.Itoa(ipv6MulticastPort))) if err != nil { + Filters.LogError("MulticastIPv6Join", "multicast socket listen on IP '%s' port '%d': %v\n", network.address.IP.String(), ipv6MulticastPort, err) return err } joinMulticastGroup := func(iface *net.Interface) (err error) { pc := ipv6.NewPacketConn(network.multicastSocket) if err := pc.JoinGroup(iface, &net.UDPAddr{IP: network.multicastIP}); err != nil { + Filters.LogError("MulticastIPv6Join", "join multicast group iface '%s' multicast IP '%s' listen on IP '%s' port '%d': %v\n", iface.Name, network.multicastIP.String(), network.address.IP.String(), ipv6MulticastPort, err) return err } // receive messages from self or other processes running on the same computer - if loop, err := pc.MulticastLoopback(); err == nil { - if !loop { - if err := pc.SetMulticastLoopback(true); err != nil { - Filters.LogError("MulticastIPv6Join", "setting multicast loopback status: %v\n", err) - } + if loop, err := pc.MulticastLoopback(); err == nil && !loop { + if err := pc.SetMulticastLoopback(true); err != nil { + Filters.LogError("MulticastIPv6Join", "setting multicast loopback status: %v\n", err) } }