Re-import of fprobe-ulog
[fprobe-ulog.git] / contrib / ipt_ULOG.patch
diff --git a/contrib/ipt_ULOG.patch b/contrib/ipt_ULOG.patch
new file mode 100644 (file)
index 0000000..732561b
--- /dev/null
@@ -0,0 +1,27 @@
+--- /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')