On Apr 19, 2011, at 9:15 AM, Sam Roberts wrote:

> Does anybody here know what causes this? Am I calling libpcap
> incorrectly?

Yes:

>    int snaplen = 0;

        ...

>    pcap_t* cap = pcap_open_live(source, snaplen, promisc, to_ms, errbuf);

A snapshot length of 0, in libpcap, doesn't mean "give me the entire packet"; 
it's not guaranteed to do anything useful.  It might get raised to some minimum 
non-zero length.  It means "give me the entire packet" in tcpdump because 
tcpdump explicitly checks for it and passes in 65535 instead.

There's also a bug in 1.1.1 where shorter snapshot lengths don't work for 
memory-mapped Linux capture; it's fixed in the trunk and the 1.2 branch.-
This is the tcpdump-workers list.
Visit https://cod.sandelman.ca/ to unsubscribe.

Reply via email to