summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoachim Nilsson <troglobit@gmail.com>2019-10-08 06:51:36 +0200
committerJoachim Nilsson <troglobit@gmail.com>2019-10-08 06:51:36 +0200
commit387fb3ca464188a8df0dcfe98e78601a3f43b7f1 (patch)
tree32e7ff5d63824025be4100ebc0572adad02a3a8d
parent067fb397def8faa55c2a721a05c8884517240464 (diff)
downloadlibnet-387fb3ca464188a8df0dcfe98e78601a3f43b7f1.tar.gz
configure: Check for FreeBSD pre-11 to detect SOCK_RAW behavior
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
-rw-r--r--configure.ac21
1 files changed, 14 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac
index d1fc873..a63c176 100644
--- a/configure.ac
+++ b/configure.ac
@@ -190,13 +190,20 @@ AS_CASE([$target_os],
],
[*freebsd*], [
- AC_DEFINE(LIBNET_BSD_BYTE_SWAP, 1,
- [Define if libnet should byteswap data.])
- AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1,
- [Define if the sockaddr structure includes a sa_len member.])
-
- PKG_CONFIG_DEFINES="-DLIBNET_BSD_BYTE_SWAP -DHAVE_SOCKADDR_SA_LEN"
- ],
+ PKG_CONFIG_DEFINES="-DHAVE_SOCKADDR_SA_LEN"
+ AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [FreeBSD has sa_len in struct sockaddr.])
+
+ AC_MSG_CHECKING([FreeBSD version, is SOCK_RAW really raw?])
+ AC_TRY_COMPILE([#include <sys/param.h>], [
+#if (__FreeBSD_version >= 1100030)
+ return 0;
+#else
+#error FreeBSD pre-11, SOCK_RAW isn't really raw, see https://www.freebsd.org/cgi/man.cgi?ip(4)#end
+#endif],
+ AC_MSG_RESULT([yes]),
+ AC_MSG_RESULT([no])
+ AC_DEFINE(LIBNET_BSD_BYTE_SWAP, 1, [FreeBSD pre-11, libnet must byteswap raw ip_len, ip_off])
+ PKG_CONFIG_DEFINES="${PKG_CONFIG_DEFINES} -DLIBNET_BSD_BYTE_SWAP")],
[*netbsd*], [
AC_DEFINE(LIBNET_BSD_BYTE_SWAP, 1,