]> The Tcpdump Group git mirrors - tcpdump/commit
Report periodic stats only when safe to do so. [skip ci]
authorDenis Ovsienko <[email protected]>
Sat, 29 Aug 2020 01:48:07 +0000 (02:48 +0100)
committerDenis Ovsienko <[email protected]>
Sat, 29 Aug 2020 01:48:07 +0000 (02:48 +0100)
commit870eeabe8970db22c9c5f88d64b7b37bdd84bd49
tree1dc681bf4c661c02512a4b9b08cd4d71e59ccc09
parentbc3bc62f51d022e86618a7c8d5408cbec06020c9
Report periodic stats only when safe to do so. [skip ci]

As explained in GH #155, when tcpdump is given -r, -w and -v and it
takes long enough to read from the input file (because it is stdin
connected through network or a pipe to stdout of another tcpdump doing
a live capture), pcap_loop() will error before long. One of the ways to
reproduce the fault is as follows:

$ tcpdump -i eno1 -w - | tcpdump -r - -w /tmp/tmp.pcap -v
tcpdump: listening on eno1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
reading from file -, link-type EN10MB (Ethernet), snapshot length 262144
tcpdump: pcap_loop: error reading dump file: Interrupted system call

Skip the verbose_stats_dump() timer setup in this specific corner case
for the time being and document it.
tcpdump.1.in
tcpdump.c