[netfilter-cvslog] r4484 - in trunk/libnetfilter_queue: include/libnetfilter_queue src

laforge at netfilter.org laforge at netfilter.org
Sun Nov 6 10:58:04 CET 2005


Author: laforge at netfilter.org
Date: 2005-11-06 10:58:03 +0100 (Sun, 06 Nov 2005)
New Revision: 4484

Modified:
   trunk/libnetfilter_queue/include/libnetfilter_queue/libnetfilter_queue.h
   trunk/libnetfilter_queue/src/libnetfilter_queue.c
Log:
fix nfq_get_timestamp() to use struct timeval and be endian correct


Modified: trunk/libnetfilter_queue/include/libnetfilter_queue/libnetfilter_queue.h
===================================================================
--- trunk/libnetfilter_queue/include/libnetfilter_queue/libnetfilter_queue.h	2005-11-06 03:48:23 UTC (rev 4483)
+++ trunk/libnetfilter_queue/include/libnetfilter_queue/libnetfilter_queue.h	2005-11-06 09:58:03 UTC (rev 4484)
@@ -68,8 +68,7 @@
 
 extern u_int32_t nfq_get_nfmark(struct nfq_data *nfad);
 
-extern struct nfq_msg_packet_timestamp *
-				nfq_get_timestamp(struct nfq_data *nfad);
+extern int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv);
 
 /* return 0 if not set */
 extern u_int32_t nfq_get_indev(struct nfq_data *nfad);

Modified: trunk/libnetfilter_queue/src/libnetfilter_queue.c
===================================================================
--- trunk/libnetfilter_queue/src/libnetfilter_queue.c	2005-11-06 03:48:23 UTC (rev 4483)
+++ trunk/libnetfilter_queue/src/libnetfilter_queue.c	2005-11-06 09:58:03 UTC (rev 4484)
@@ -335,10 +335,18 @@
 	return ntohl(nfnl_get_data(nfad->data, NFQA_MARK, u_int32_t));
 }
 
-struct nfq_msg_packet_timestamp *nfq_get_timestamp(struct nfq_data *nfad)
+int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv)
 {
-	return nfnl_get_pointer_to_data(nfad->data, NFQA_TIMESTAMP,
-					struct nfq_msg_packet_timestamp);
+	struct nfqnl_msg_packet_timestamp *qpt;
+	qpt = nfnl_get_pointer_to_data(nfad->data, NFQA_TIMESTAMP,
+					struct nfqnl_msg_packet_timestamp);
+	if (!qpt)
+		return -1;
+
+	tv->tv_sec = __be64_to_cpu(qpt->sec);
+	tv->tv_usec = __be64_to_cpu(qpt->usec);
+
+	return 0;
 }
 
 /* all nfq_get_*dev() functions return 0 if not set, since linux only allows




More information about the netfilter-cvslog mailing list