22 August 2018
pcap_set_immediate_mode - set immediate mode for a not-yet-activated capture handle
int pcap_set_immediate_mode(pcap_t *p, int immediate_mode);
pcap_set_immediate_mode() sets whether immediate mode should be set on a capture handle when the handle is activated. In immediate mode, packets are always delivered as soon as they arrive, with no buffering. If immediate_mode is non-zero, immediate mode will be set, otherwise it will not be set.
pcap_set_immediate_mode() returns 0 on success or PCAP_ERROR_ACTIVATED if called on a capture handle that has been activated.
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 other platforms, capture devices are always in immediate mode.