From f380aa60faa41872b78155f899518b25933d18b9 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Thu, 20 Apr 2000 23:05:41 +0000 Subject: [PATCH] IPv6 compiles with glibc 2.1. --- sysdep/linux/sysio.h | 6 ++++-- 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 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 + * (c) 1998--2000 Martin Mares * * Can be freely distributed and used under the terms of the GNU GPL. */ #ifdef IPV6 -#include /* FIXMEv6: glibc variant? */ +#ifdef CONFIG_IPV6_GLIBC_20 +#include +#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 + * (c) 1998--2000 Martin Mares * * 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"); }