snoopy: fix timestamps for pcap files (thanks BurnZeZ)
the pcap files produced by snoopy had the wrong timestamps because it expected: /* magic=0xa1b2c3d4 */ ulong ts_sec; /* seconds*/ ulong ts_usec; /* microseconds */ but we wrote: uvlong ts; /* nanoseconds */ now, we write: /* magic=0xa1b23c4d */ ulong ts_sec; /* seconds */ ulong ts_nsec; /* nanoseconds */
This commit is contained in:
parent
a53ae2782a
commit
46bbeea040
1 changed files with 5 additions and 3 deletions
|
@ -273,7 +273,7 @@ filterpkt(Filter *f, uchar *ps, uchar *pe, Proto *pr, int needroot)
|
||||||
*/
|
*/
|
||||||
#define PCAP_VERSION_MAJOR 2
|
#define PCAP_VERSION_MAJOR 2
|
||||||
#define PCAP_VERSION_MINOR 4
|
#define PCAP_VERSION_MINOR 4
|
||||||
#define TCPDUMP_MAGIC 0xa1b2c3d4
|
#define TCPDUMP_MAGIC 0xa1b23c4d
|
||||||
|
|
||||||
struct pcap_file_header {
|
struct pcap_file_header {
|
||||||
ulong magic;
|
ulong magic;
|
||||||
|
@ -286,7 +286,8 @@ struct pcap_file_header {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct pcap_pkthdr {
|
struct pcap_pkthdr {
|
||||||
uvlong ts; /* time stamp */
|
ulong ts_sec;
|
||||||
|
ulong ts_nsec;
|
||||||
ulong caplen; /* length of portion present */
|
ulong caplen; /* length of portion present */
|
||||||
ulong len; /* length this packet (off wire) */
|
ulong len; /* length this packet (off wire) */
|
||||||
};
|
};
|
||||||
|
@ -323,7 +324,8 @@ tracepkt(uchar *ps, int len)
|
||||||
len = Mflag;
|
len = Mflag;
|
||||||
if(pcap){
|
if(pcap){
|
||||||
goo = (struct pcap_pkthdr*)(ps-16);
|
goo = (struct pcap_pkthdr*)(ps-16);
|
||||||
goo->ts = pkttime;
|
goo->ts_sec = (uvlong)pkttime / 1000000000;
|
||||||
|
goo->ts_nsec = (uvlong)pkttime % 1000000000;
|
||||||
goo->caplen = len;
|
goo->caplen = len;
|
||||||
goo->len = len;
|
goo->len = len;
|
||||||
write(1, goo, len+16);
|
write(1, goo, len+16);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue