ipv6 handling is wrong
Ipv6 deliberately ignores global addresses. This is wrong. The spec says (UDA 1.1, which I consider more useful for IPv6) that a client may skip link-local addresses if it has a global address; using the global address if available is a MUST. Likewise, we should join the correct multicast group for global scope.