summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sysdep/linux/sysio.h6
-rw-r--r--sysdep/unix/io.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/sysdep/linux/sysio.h b/sysdep/linux/sysio.h
index 58fb9779..0e8ee3dd 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 7857a272..aff144b6 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");
}