On Sat, Jul 25, 2009 at 5:29 AM, Guy Harris<g...@alum.mit.edu> wrote:
>
> On Jul 21, 2009, at 11:12 PM, Guy Harris wrote:
>
>> On Jun 23, 2009, at 7:34 PM, Mike Kershaw wrote:
>>
>>> (This now actually hits my error catcher where 100 fd highs in a row
>>> with no packets triggers a shutdown of the source, since libpcap-1.0.0
>>> seems to not return errors in pcap_dispatch when a netdev is removed
>>
>> There does not appear to be a way for the memory-mapped interface to
>> directly return such an error.
>
> And not only that, but my test program reports, on my Fedora 9 system
> (2.6.27.25-78.2.6.fc9.i686 kernel), that, if I unplug an interface on which
> I'm capturing:
>
>        select() reports that the descriptor is readable;
>
>        there are *NO* packets to get from the memory-mapped buffer;
>
>        select() does *not* report that there's an exceptional condition on
> the descriptor;
>
> so the kernel and driver appear to be continuously reporting through
> select() a condition *indistinguishable from "there's a packet available"*
> even though no packets are available.

Isnt this akin to a pipe becoming "readable" when the other end closes
its filedescriptor.
The pipe is readable but there is no data to read.


What does ioctl(, FIONREAD, ) return when this happen?
If your descriptor became readable by this ioctl returns 0 bytes
available for reading, this could be used to detect this condition and
abort the loop.
-
This is the tcpdump-workers list.
Visit https://cod.sandelman.ca/ to unsubscribe.

Reply via email to