[netfilter-cvslog] r6849 - trunk/libnetfilter_conntrack/src/conntrack

pablo at netfilter.org pablo at netfilter.org
Tue May 29 17:10:45 CEST 2007


Author: pablo at netfilter.org
Date: 2007-05-29 17:10:45 +0200 (Tue, 29 May 2007)
New Revision: 6849

Modified:
   trunk/libnetfilter_conntrack/src/conntrack/parse.c
Log:
add support for 64 bits counters (Krzysztof Oledzki)


Modified: trunk/libnetfilter_conntrack/src/conntrack/parse.c
===================================================================
--- trunk/libnetfilter_conntrack/src/conntrack/parse.c	2007-05-29 11:24:45 UTC (rev 6848)
+++ trunk/libnetfilter_conntrack/src/conntrack/parse.c	2007-05-29 15:10:45 UTC (rev 6849)
@@ -182,10 +182,18 @@
 	struct nfattr *tb[CTA_COUNTERS_MAX];
 
 	nfnl_parse_nested(tb, CTA_COUNTERS_MAX, attr);
-	if (tb[CTA_COUNTERS32_PACKETS-1]) {
-		ct->counters[dir].packets
-			= ntohl(*(u_int32_t *)
-				NFA_DATA(tb[CTA_COUNTERS32_PACKETS-1]));
+	if (tb[CTA_COUNTERS_PACKETS-1] || tb[CTA_COUNTERS32_PACKETS-1]) {
+
+		if (tb[CTA_COUNTERS32_PACKETS-1])
+			ct->counters[dir].packets
+				= ntohl(*(u_int32_t *)
+					NFA_DATA(tb[CTA_COUNTERS32_PACKETS-1]));
+
+		if (tb[CTA_COUNTERS_PACKETS-1])
+			ct->counters[dir].packets
+				= __be64_to_cpu(*(u_int64_t *)
+					NFA_DATA(tb[CTA_COUNTERS_PACKETS-1]));
+
 		switch(dir) {
 		case __DIR_ORIG:
 			set_bit(ATTR_ORIG_COUNTER_PACKETS, ct->set);
@@ -195,10 +203,18 @@
 			break;
 		}
 	}
-	if (tb[CTA_COUNTERS32_BYTES-1]) {
-		ct->counters[dir].bytes
-			= ntohl(*(u_int32_t *)
-				NFA_DATA(tb[CTA_COUNTERS32_BYTES-1]));
+	if (tb[CTA_COUNTERS_BYTES-1] || tb[CTA_COUNTERS32_BYTES-1]) {
+
+		if (tb[CTA_COUNTERS32_BYTES-1])
+			ct->counters[dir].bytes
+				= ntohl(*(u_int32_t *)
+					NFA_DATA(tb[CTA_COUNTERS32_BYTES-1]));
+
+		if (tb[CTA_COUNTERS_BYTES-1])
+			ct->counters[dir].bytes
+				= __be64_to_cpu(*(u_int64_t *)
+					NFA_DATA(tb[CTA_COUNTERS_BYTES-1]));
+
 		switch(dir) {
 		case __DIR_ORIG:
 			set_bit(ATTR_ORIG_COUNTER_BYTES, ct->set);




More information about the netfilter-cvslog mailing list