summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2000-04-21 01:05:41 +0200
committerMartin Mares <mj@ucw.cz>2000-04-21 01:05:41 +0200
commitf380aa60faa41872b78155f899518b25933d18b9 (patch)
tree77122af7cbba3d464512f70044c17fe9e8c4abbb
parentf33c6c66020da3b10b27fba5585d20702b173c6f (diff)
downloadbird-f380aa60faa41872b78155f899518b25933d18b9.tar
bird-f380aa60faa41872b78155f899518b25933d18b9.zip
IPv6 compiles with glibc 2.1.
-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 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");
}