tcpdump mailing list archives
Re: pcap_next_ex calls pcap_oneshot instead of p->oneshot_callback
From: Guy Harris <guy () alum mit edu>
Date: Fri, 4 Feb 2011 10:33:27 -0800
On Feb 4, 2011, at 5:00 AM, Tobias C Rittweiler wrote:
In the latest release as well as git HEAD, pcap_next_ex calls pcap_oneshot (the default callback) instead of p->oneshot_callback like pcap_next does. This means that packets change underneath one application when using Linux and its mmapped ring buffer.
I've checked a fix into the trunk and the 1.1 branch.
Additionally, I think the manpages of pcap_next and pcap_dispatch should describe whether or not the user is supposed the free the packet's memory. My understanding is that the packet has dynamic extent in case of pcap_dispatch but in case of pcap_next / pcap_next_ex the user is supposed to free the packet buffer -- is that correct?
No. The packet buffer is allocated by libpcap, and is attached to the pcap_t. It's guaranteed (with the above fix) not to change until either pcap_loop(), pcap_dispatch(), pcap_next(), or pcap_next_ex() is called. I've updated the man pages to reflect the lifetime of the packet header and packet data.- This is the tcpdump-workers list. Visit https://cod.sandelman.ca/ to unsubscribe.
Current thread:
- pcap_next_ex calls pcap_oneshot instead of p->oneshot_callback Tobias C Rittweiler (Feb 04)
- Re: pcap_next_ex calls pcap_oneshot instead of p->oneshot_callback Guy Harris (Feb 04)