1.9.11 compile failure on IRIX 6.5, Tru64 UNIX 5.1
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 cc -DHAVE_CONFIG_H -I. -I. -I.. -DPATH_SYSCONFDIR=\"/etc/opt/TWWfsw/syslogng1911\" -DPATH_LOCALSTATEDIR=\"/var/opt/TWWfsw/syslogng1911\" -I/opt/TWWfsw/libglib26/include -I/opt/TWWfsw/libglib26/lib/include -I/opt/TWWfsw/gettext014/include -I/opt/TWWfsw/syslogng198/include/eventlog -D_GNU_SOURCE -Wl,-woff,84 -Wl,-woff,85 -woff 1009,1429 -use_readonly_const -G0 -rdata_shared -DEBUG:optimize_space=ON -O2 -OPT:Olimit=0 -c afinet.c cc-1020 cc: ERROR File = afinet.c, Line = 190 The identifier "IPV6_ADD_MEMBERSHIP" is undefined. setsockopt(fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq6, sizeof(mreq6)); ^ 1 error detected in the compilation of "afinet.c". -- albert chin (china@thewrittenword.com)
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
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)
participants (2)
-
Albert Chin
-
Balazs Scheidler