pcap_set_immediate_mode(3PCAP) man page
Return to Main Contents
#include <pcap/pcap.h> int pcap_set_immediate_mode(pcap_t *p, int immediate_mode);
This function became available in libpcap release 1.5.0. In previous releases, if immediate delivery of packets is required:
- on FreeBSD, NetBSD, OpenBSD, DragonFly BSD, macOS, and Solaris 11, immediate mode must be turned on with a BIOCIMMEDIATE ioctl(2), as documented in bpf(4), on the descriptor returned by pcap_fileno(3PCAP), after pcap_activate(3PCAP) is called;
- on Solaris 10 and earlier versions of Solaris, immediate mode must be turned on by using a read timeout of 0 when opening the device (this will not provide immediate delivery of packets on other platforms, so don't assume it's sufficient);
- on Digital UNIX/Tru64 UNIX, immediate mode must be turned on by doing a BIOCMBIC ioctl(), as documented in packetfilter(7), to clear the ENBATCH flag on the descriptor returned by pcap_fileno(3PCAP), after pcap_activate(3PCAP) is called;
- on Windows, immediate mode must be turned on by calling pcap_setmintocopy() with a size of 0.
On Linux, with previous releases of libpcap, capture devices are always in immediate mode; however, in 1.5.0 and later, they are, by default, not in immediate mode, so if pcap_set_immediate_mode() is available, it should be used.
On other platforms, capture devices are always in immediate mode.