From 339d28cefc11bbadaa92005b4f7b365f4732432c Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Mon, 12 Oct 2009 17:21:02 -0700 Subject: [PATCH] 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. --- CREDITS | 1 + pcap_get_selectable_fd.3pcap | 27 +-------------------------- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/CREDITS b/CREDITS index 1ed5b66..326afa5 100644 --- a/CREDITS +++ b/CREDITS @@ -84,6 +84,7 @@ Additional people who have contributed patches: Mike Kershaw Mike Wiacek Monroe Williams + N. Leiten Nicolas Dade Octavian Cerna Olaf Kirch diff --git a/pcap_get_selectable_fd.3pcap b/pcap_get_selectable_fd.3pcap index 123671a..61be3d3 100644 --- a/pcap_get_selectable_fd.3pcap +++ b/pcap_get_selectable_fd.3pcap @@ -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)