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? --- 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) Thanks. -- Bazsi