dect
/
libpcap
Archived
1
0
Fork 0

Give N. Leiten credit for the poll() exceptional condition checks in

pcap-linux.c memory-mapped mode.

Always doing a poll() if there are no packets available allows us to
catch disappearing interfaces in memory-mapped mode, so remove the
caveats about Linux.
master
Guy Harris 13 years ago
parent 26384d5fc7
commit 339d28cefc
  1. 1
      CREDITS
  2. 27
      pcap_get_selectable_fd.3pcap

@ -84,6 +84,7 @@ Additional people who have contributed patches:
Mike Kershaw <dragorn at kismetwireless dot net>
Mike Wiacek <mike at iroot dot net>
Monroe Williams <monroe at pobox dot com>
N. Leiten <nleiten at sourceforge dot net>
Nicolas Dade <ndade at nsd dot dyndns dot org>
Octavian Cerna <tavy at ylabs dot com>
Olaf Kirch <okir at caldera dot de>

@ -110,35 +110,10 @@ but not kqueues, work on that descriptor in Mac OS X releases prior to
.B poll()
and kqueues work on that descriptor in Mac OS X 10.6 and later.
.PP
On Linux, if the network interface on which you're capturing disappears
(e.g., if a USB interface is unplugged), select) will return an
indication that the descriptor has data available to read. If libpcap
is not using memory-mapped mode to capture, the attempt to read the next
packet will return an error; however, if it is using memory-mapped mode
to capture, which it will do if the kernel includes support for
memory-mapped mode, no packet or error will be returned if you have put
the
.B pcap_t
into non-blocking mode. You must use
.B poll()
in this case;
.B poll()
will return a
.B POLLERR
indication; a
.BR recv (2),
.BR recvfrom(2),
or
.BR recvmsg (2)
on the descriptor will return \-1 and set
.B errno
to
.B ENETDOWN.
.PP
.B pcap_get_selectable_fd()
is not available on Windows.
.SH RETURN VALUE
A selectable file descriptor is returned if one exists; otherwise, \-1
is returned.
.SH SEE ALSO
pcap(3PCAP), select(2), poll(2), recv(2)
pcap(3PCAP), select(2), poll(2)