Skip to content

Commit

Permalink
Give N. Leiten credit for the poll() exceptional condition checks in
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
guyharris committed Oct 13, 2009
1 parent 26384d5 commit 339d28c
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 26 deletions.
1 change: 1 addition & 0 deletions CREDITS
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
27 changes: 1 addition & 26 deletions pcap_get_selectable_fd.3pcap
Original file line number Diff line number Diff line change
Expand Up @@ -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)

0 comments on commit 339d28c

Please sign in to comment.