diff options
-rw-r--r-- | sysdep/linux/sysio.h | 6 | ||||
-rw-r--r-- | sysdep/unix/io.c | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/sysdep/linux/sysio.h b/sysdep/linux/sysio.h index 58fb977..0e8ee3d 100644 --- a/sysdep/linux/sysio.h +++ b/sysdep/linux/sysio.h @@ -1,14 +1,16 @@ /* * BIRD Internet Routing Daemon -- Linux Multicasting and Network Includes * - * (c) 1998--1999 Martin Mares <mj@ucw.cz> + * (c) 1998--2000 Martin Mares <mj@ucw.cz> * * Can be freely distributed and used under the terms of the GNU GPL. */ #ifdef IPV6 -#include <linux/in6.h> /* FIXMEv6: glibc variant? */ +#ifdef CONFIG_IPV6_GLIBC_20 +#include <linux/in6.h> +#endif static inline void set_inaddr(struct in6_addr *ia, ip_addr a) diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c index 7857a27..aff144b 100644 --- a/sysdep/unix/io.c +++ b/sysdep/unix/io.c @@ -1,7 +1,7 @@ /* * BIRD Internet Routing Daemon -- Unix I/O * - * (c) 1998--1999 Martin Mares <mj@ucw.cz> + * (c) 1998--2000 Martin Mares <mj@ucw.cz> * * Can be freely distributed and used under the terms of the GNU GPL. */ @@ -585,7 +585,11 @@ sk_open(sock *s) { struct ipv6_mreq mreq; set_inaddr(&mreq.ipv6mr_multiaddr, s->daddr); +#ifdef CONFIG_IPV6_GLIBC_20 mreq.ipv6mr_ifindex = s->iface->index; +#else + mreq.ipv6mr_interface = s->iface->index; +#endif if (setsockopt(fd, SOL_IPV6, IPV6_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0) ERR("IPV6_ADD_MEMBERSHIP"); } |