--- /usr/src/kernel/linux-2.4.26/net/ipv4/netfilter/ipt_ULOG.c 2003-08-25 15:44:44.000000000 +0400 +++ ipt_ULOG.c 2004-08-09 10:54:04.000000000 +0400 @@ -165,6 +165,7 @@ size_t size, copy_len; struct nlmsghdr *nlh; struct ipt_ulog_info *loginfo = (struct ipt_ulog_info *) targinfo; + struct timeval now; /* ffs == find first bit set, necessary because userspace * is already shifting groupnumber, but we need unshifted. @@ -211,8 +212,14 @@ /* copy hook, prefix, timestamp, payload, etc. */ pm->data_len = copy_len; - pm->timestamp_sec = (*pskb)->stamp.tv_sec; - pm->timestamp_usec = (*pskb)->stamp.tv_usec; + if ((*pskb)->stamp.tv_sec) { + pm->timestamp_sec = (*pskb)->stamp.tv_sec; + pm->timestamp_usec = (*pskb)->stamp.tv_usec; + } else { + do_gettimeofday(&now); + pm->timestamp_sec = now.tv_sec; + pm->timestamp_usec = now.tv_usec; + } pm->mark = (*pskb)->nfmark; pm->hook = hooknum; if (loginfo->prefix[0] != '\0')