From 6579b2569cf98a64832fe94158dc8ed412e4a99a Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Mon, 2 Jun 2008 01:40:41 +0200 Subject: Set timestamp in NFLOG for INPUT and OUTPUT --- input/packet/ulogd_inppkt_NFLOG.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'input/packet') diff --git a/input/packet/ulogd_inppkt_NFLOG.c b/input/packet/ulogd_inppkt_NFLOG.c index 9918fae..0f26564 100644 --- a/input/packet/ulogd_inppkt_NFLOG.c +++ b/input/packet/ulogd_inppkt_NFLOG.c @@ -344,13 +344,14 @@ interp_packet(struct ulogd_pluginstance *upi, struct nflog_data *ldata) /* god knows why timestamp_usec contains crap if timestamp_sec * == 0 if (pkt->timestamp_sec || pkt->timestamp_usec) { */ - if (nflog_get_timestamp(ldata, &ts) == 0 && ts.tv_sec) { - /* FIXME: convert endianness */ - ret[NFLOG_KEY_OOB_TIME_SEC].u.value.ui32 = ts.tv_sec & 0xffffffff; - ret[NFLOG_KEY_OOB_TIME_SEC].flags |= ULOGD_RETF_VALID; - ret[NFLOG_KEY_OOB_TIME_USEC].u.value.ui32 = ts.tv_usec & 0xffffffff; - ret[NFLOG_KEY_OOB_TIME_USEC].flags |= ULOGD_RETF_VALID; - } + if (! (nflog_get_timestamp(ldata, &ts) == 0 && ts.tv_sec)) + gettimeofday(&ts, NULL); + + /* FIXME: convert endianness */ + ret[NFLOG_KEY_OOB_TIME_SEC].u.value.ui32 = ts.tv_sec & 0xffffffff; + ret[NFLOG_KEY_OOB_TIME_SEC].flags |= ULOGD_RETF_VALID; + ret[NFLOG_KEY_OOB_TIME_USEC].u.value.ui32 = ts.tv_usec & 0xffffffff; + ret[NFLOG_KEY_OOB_TIME_USEC].flags |= ULOGD_RETF_VALID; ret[NFLOG_KEY_OOB_MARK].u.value.ui32 = mark; ret[NFLOG_KEY_OOB_MARK].flags |= ULOGD_RETF_VALID; -- cgit v1.2.3