With C in Linux, it’s possible to create a UDP-lite socket simply by specifying
IPPROTO_UDPLITE for the third argument to the
socket function, i.e.:
fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);
but it appears there’s no way to do this with the standard
net package in Go as the value of 0 is passed in to the
internetSocket function in udpsock_posix.go.
Short of a patch for accepting a new “network” argument “udplite”, which I suspect is not likely to be accepted, it looks like the only way to do UDP-lite in Go is with an IP socket (
DialIP), which requires either root privileges or
setcap cap_net_raw+ep executable.
Is there any other way to do UDP-lite in Go?