123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- .\" Copyright (c) 1994, 1996, 1997
- .\" The Regents of the University of California. All rights reserved.
- .\"
- .\" Redistribution and use in source and binary forms, with or without
- .\" modification, are permitted provided that: (1) source code distributions
- .\" retain the above copyright notice and this paragraph in its entirety, (2)
- .\" distributions including binary code include the above copyright notice and
- .\" this paragraph in its entirety in the documentation or other materials
- .\" provided with the distribution, and (3) all advertising materials mentioning
- .\" features or use of this software display the following acknowledgement:
- .\" ``This product includes software developed by the University of California,
- .\" Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
- .\" the University nor the names of its contributors may be used to endorse
- .\" or promote products derived from this software without specific prior
- .\" written permission.
- .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- .\"
- .TH PCAP_GET_REQUIRED_SELECT_TIMEOUT 3PCAP "20 January 2018"
- .SH NAME
- pcap_get_required_select_timeout \- get a file descriptor on which a
- select() can be done for a live capture
- .SH SYNOPSIS
- .nf
- .ft B
- #include <pcap/pcap.h>
- .ft
- .LP
- .ft B
- struct timeval *pcap_get_required_select_timeout(pcap_t *p);
- .ft
- .fi
- .SH DESCRIPTION
- .B pcap_get_required_select_timeout()
- returns, on UNIX, a pointer to a
- .B struct timeval
- containing a value that must be used as the minimum timeout in
- .BR select() ,
- .BR poll() ,
- .BR epoll_wait() ,
- and
- .B kevent()
- calls if
- .B pcap_get_selectable_fd()
- returns \-1.
- .PP
- The timeout that should be used in those calls must be no larger than
- the smallest of all timeouts returned by
- .B pcap_get_required_select_timeout()
- for devices from which packets will be captured.
- .PP
- The device for which
- .B pcap_get_selectable_fd()
- returned \-1 must be put in non-blocking mode with
- .BR pcap_setnonblock() ,
- and an attempt must always be made to read packets from the device
- when the
- .BR select() ,
- .BR poll() ,
- .BR epoll_wait() ,
- or
- .B kevent()
- call returns.
- .PP
- 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
- .B pcap_dispatch()
- or
- .B pcap_next_ex()
- will return 0 in this case, but will not block.
- .PP
- .B pcap_get_required_select_timeout()
- is not available on Windows.
- .SH RETURN VALUE
- A pointer to a
- .B struct timeval
- is returned if the timeout is required; otherwise
- .B NULL
- is returned.
- .SH SEE ALSO
- pcap(3PCAP), pcap_get_selectable_fd(3PCAP), select(2), poll(2),
- epoll_wait(2), kqueue(2)
|