summaryrefslogtreecommitdiffstats
path: root/aclocal.m4
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1999-04-12 17:27:56 +0200
committerMartin Mares <mj@ucw.cz>1999-04-12 17:27:56 +0200
commit61fb537c6273c50deb7d33f8af246993eab4bc4d (patch)
treeee108fce7337013453b6b9c5065ccd2e2b45acce /aclocal.m4
parent5a99ade413b97a780758f5c8f927604ad6c8e57b (diff)
downloadbird-61fb537c6273c50deb7d33f8af246993eab4bc4d.tar
bird-61fb537c6273c50deb7d33f8af246993eab4bc4d.zip
Use `struct ip_mreqn' instead of `struct ip_mreq' for multicast
operations on 2.1/2.2 kernels. This allows passing of real interface indexes instead of referencing interfaces by their IP addresses which fails badly in presence of unnumbered interfaces. Unfortunately, this structure is not visible with glibc 2.0 as it provides its own networking headers :-( Both libc5 and glibc 2.1 should be OK.
Diffstat (limited to 'aclocal.m4')
-rw-r--r--aclocal.m412
1 files changed, 12 insertions, 0 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index 651b0db..98a5ca8 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -116,3 +116,15 @@ case "$bird_cv_type_time_t" in
*) AC_DEFINE(TIME_T_IS_SIGNED) ;;
esac
])
+
+AC_DEFUN(BIRD_CHECK_STRUCT_IP_MREQN,
+[AC_CACHE_CHECK([struct ip_mreqn], bird_cv_struct_ip_mreqn,[
+AC_TRY_COMPILE([#include <netinet/in.h>
+],[struct ip_mreqn x;
+],[bird_cv_struct_ip_mreqn=yes
+],[bird_cv_struct_ip_mreqn=no
+])])
+if test "$bird_cv_struct_ip_mreqn" = yes ; then
+ AC_DEFINE(HAVE_STRUCT_IP_MREQN)
+fi
+])