From: Eric Leblond Date: Sun, 1 Jun 2008 23:40:41 +0000 (+0200) Subject: Set timestamp in NFLOG for INPUT and OUTPUT X-Git-Tag: ulogd-2.0.0beta2~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6579b2569cf98a64832fe94158dc8ed412e4a99a;p=thirdparty%2Fulogd2.git Set timestamp in NFLOG for INPUT and OUTPUT --- 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;