]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
BPF: Test for pcap_set_immediate_mode()
authorRoy Marples <roy@marples.name>
Tue, 19 May 2026 11:23:59 +0000 (12:23 +0100)
committerRoy Marples <roy@marples.name>
Tue, 19 May 2026 11:23:59 +0000 (12:23 +0100)
configure
src/bpf-pcap.c

index 7e3351a218d403db105efb6648712d7f78da4a59..b92b139fd1307349d7866d6432b616575e357815 100755 (executable)
--- a/configure
+++ b/configure
@@ -1548,6 +1548,22 @@ EOF
        echo "LDADD+=           $LIBPCAP_LIBS" >>$CONFIG_MK
        echo "#define   USE_LIBPCAP" >>$CONFIG_H
 
+       printf "Testing for pcap_set_immediate_mode() ... "
+       cat <<EOF >_libpcap_imm.c
+#include <pcap.h>
+
+int main(void) {
+       return pcap_set_immediate_mode(NULL, 1);
+}
+EOF
+       if $XCC $LIBPCAP_CFLAGS _libpcap_imm.c -o libpcap_imm $LIBPCAP_LIBS 2>&3; then
+               echo "yes"
+               echo "#define HAVE_PCAP_SET_IMMEDIATE_MODE" >>$CONFIG_H
+       else
+               echo "no"
+       fi
+       rm -f _libpcap_imm.c libpcap_imm
+
        printf "Testing for pcap_setwritefilter() ... "
        cat <<EOF >_libpcap_write.c
 #include <pcap.h>
index c77083bcbe4887a4a7b320e2a99ba8fedd38d6d2..1fcd50b2479372db2ffae55c39d925f5a1fce882 100644 (file)
@@ -86,7 +86,9 @@ bpf_open(const struct interface *ifp,
        PCAP_CHECK(pcap_set_snaplen(handle, (int)bpf->bpf_size),
            "pcap_set_snaplen");
        PCAP_CHECK(pcap_set_promisc(handle, 0), "pcap_set_promisc");
+#ifdef HAVE_PCAP_SET_IMMEDIATE_MODE
        PCAP_CHECK(pcap_set_immediate_mode(handle, 1),
+#endif
            "pcap_set_immediate_mode");
 
        err = pcap_activate(handle);