On Thu, Jun 01, 2006 at 11:15:03AM +0200, Balazs Scheidler wrote:
On Wed, 2006-05-31 at 13:34 -0500, Albert Chin wrote:
Seems like IRIX 6.5 and Tru64 UNIX 5.1 don't have IPV6_ADD_MEMBERSHIP. They do have IP_ADD_MEMBERSHIP though. Should we just: #ifndef IPV6_ADD_MEMBERSHIP #define IPV6_ADD_MEMBERSHIP IP_ADD_MEMBERSHIP #endif
To be honest I don't know whether IP_ADD_MEMBERSHIP simply works on IPv6 as well.
Hmmm.. I've checked out RFC3493 and it uses IPV6_JOIN_GROUP and this seems to be defined on Linux too. Can you check if the following patch fixes the problem on IRIX?
Yes, it does. Thanks.
--- orig/src/afinet.c +++ mod/src/afinet.c @@ -195,7 +195,7 @@ afinet_setup_socket(gint fd, GSockAddr * memset(&mreq6, 0, sizeof(mreq6)); mreq6.ipv6mr_multiaddr = *g_sockaddr_inet6_get_address(addr); mreq6.ipv6mr_interface = 0; - setsockopt(fd, SOL_IPV6, IPV6_ADD_MEMBERSHIP, &mreq6, sizeof(mreq6)); + setsockopt(fd, SOL_IPV6, IPV6_JOIN_GROUP, &mreq6, sizeof(mreq6)); setsockopt(fd, SOL_IPV6, IPV6_MULTICAST_LOOP, &off, sizeof(off)); } if (dir & AFSOCKET_DIR_SEND)
-- albert chin (china@thewrittenword.com)