From 0fa29915cdcadb5853515703d3eca8992627dcf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Wed, 30 Nov 2011 21:35:38 +0100 Subject: net: store guest timestamp in dump file instead of time since guest startup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Stored dates are no more 1970-01-01 (+ run time), but have a real meaning. If someone wants to have comparable timestamps accross boots, it is possible to start qemu with -rtc to give the startup date. Signed-off-by: Hervé Poussineau Signed-off-by: Anthony Liguori --- net/dump.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/net/dump.c b/net/dump.c index 81324116f3..4b48d48408 100644 --- a/net/dump.c +++ b/net/dump.c @@ -30,6 +30,7 @@ typedef struct DumpState { VLANClientState nc; + int64_t start_ts; int fd; int pcap_caplen; } DumpState; @@ -70,7 +71,7 @@ static ssize_t dump_receive(VLANClientState *nc, const uint8_t *buf, size_t size ts = muldiv64(qemu_get_clock_ns(vm_clock), 1000000, get_ticks_per_sec()); caplen = size > s->pcap_caplen ? s->pcap_caplen : size; - hdr.ts.tv_sec = ts / 1000000; + hdr.ts.tv_sec = ts / 1000000 + s->start_ts; hdr.ts.tv_usec = ts % 1000000; hdr.caplen = caplen; hdr.len = size; @@ -104,6 +105,7 @@ static int net_dump_init(VLANState *vlan, const char *device, struct pcap_file_hdr hdr; VLANClientState *nc; DumpState *s; + struct tm tm; int fd; fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY | O_BINARY, 0644); @@ -136,6 +138,9 @@ static int net_dump_init(VLANState *vlan, const char *device, s->fd = fd; s->pcap_caplen = len; + qemu_get_timedate(&tm, 0); + s->start_ts = mktime(&tm); + return 0; } -- cgit v1.2.1