Hi all,

I upgraded to Go 1.9 and since then UDP multicast code that has been
running fine for over a year is now failing on JoinGroup.  I run this
program on linux Mint 18 as root (using sudo), both for the multicast
permissions and also to allow listening on TCP port 80 and redirecting to
port 443 for SSL.  The error returned from JoinGroup is "operation not
permitted" which I could expect for a non-privileged user, but not for
root.

If I recompile the program using Go 1.8.3 the exact same works again.

I won't show all the code since there are several structs and "objects"
involved, but here's the failing bit, with the interface, listen address,
and group address all hard coded just for this example:

iFace := "eno1"
listenAddr := "0.0.0.0:12080"
grpAddress := "224.0.0.12"
inetConn, err3 := net.ListenPacket("udp4", listenAddr)
if err3 != nil {
alertMsg = bsutils.CreateFormattedBSAlert(bsutils.ALERT_CRITICAL,
"ListenPacket Failed: %s", err3.Error())
return nil, alertMsg
}

mConn := ipv4.NewPacketConn(inetConn)
if err := mConn.JoinGroup(iFace, &net.UDPAddr{IP: grpAddress}); err != nil {
alertMsg = bsutils.CreateFormattedBSAlert(bsutils.ALERT_CRITICAL,
"JoinGroup Failed: %s", err.Error())
return nil, alertMsg
}

If it gets past the above code, I then do a SetControlMessage and return
mConn for normal serving.

thanks,
Paul

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to