Updated: 2020/Jul/29


PCAP_GET_REQUIRED_SELECT_TIMEOUT(3)                   Library Functions Manual



NAME
       pcap_get_required_select_timeout - get a file descriptor on which a
       select() can be done for a live capture

SYNOPSIS
       #include <pcap/pcap.h>

       struct timeval *pcap_get_required_select_timeout(pcap_t *p);

DESCRIPTION
       pcap_get_required_select_timeout() returns, on UNIX, a pointer to a
       struct timeval containing a value that must be used as the minimum
       timeout in select(2), poll(2), epoll_wait(2), and kevent() calls if
       pcap_get_selectable_fd(3) returns PCAP_ERROR.

       The timeout that should be used in those calls must be no larger than
       the smallest of all timeouts returned by
       pcap_get_required_select_timeout() for devices from which packets will
       be captured.

       The device for which pcap_get_selectable_fd() returned PCAP_ERROR must
       be put in non-blocking mode with pcap_setnonblock(3), and an attempt
       must always be made to read packets from the device when the select(),
       poll(), epoll_wait(), or kevent() call returns.

       Note that a device on which a read can be done without blocking may, on
       some platforms, not have any packets to read if the packet buffer
       timeout has expired.  A call to pcap_dispatch(3) or pcap_next_ex(3)
       will return 0 in this case, but will not block.

       pcap_get_required_select_timeout() is not available on Windows.

RETURN VALUE
       A pointer to a struct timeval is returned if the timeout is required;
       otherwise NULL is returned.

BACKWARD COMPATIBILITY
       This function became available in libpcap release 1.9.0.  In previous
       releases, select(), poll(), epoll_wait(), and kevent() cannot be used
       on any capture source for which pcap_get_selectable_fd returns -1.

SEE ALSO
       pcap(3), pcap_get_selectable_fd(3), select(2), poll(2), epoll_wait(2),
       kqueue(2)



                                 25 July 2018
                                           PCAP_GET_REQUIRED_SELECT_TIMEOUT(3)