[netfilter-cvslog] r6805 - trunk/iptables/extensions

kaber at trash.net kaber at trash.net
Wed Apr 18 16:00:11 CEST 2007


Author: kaber at trash.net
Date: 2007-04-18 16:00:11 +0200 (Wed, 18 Apr 2007)
New Revision: 6805

Modified:
   trunk/iptables/extensions/libipt_MASQUERADE.c
   trunk/iptables/extensions/libipt_SAME.c
   trunk/iptables/extensions/libipt_SNAT.c
Log:
Fix iptables-save with --random option


Modified: trunk/iptables/extensions/libipt_MASQUERADE.c
===================================================================
--- trunk/iptables/extensions/libipt_MASQUERADE.c	2007-04-18 12:56:05 UTC (rev 6804)
+++ trunk/iptables/extensions/libipt_MASQUERADE.c	2007-04-18 14:00:11 UTC (rev 6805)
@@ -138,7 +138,7 @@
 	}
 
 	if (r->flags & IP_NAT_RANGE_PROTO_RANDOM)
-		printf("random");
+		printf("random ");
 }
 
 /* Saves the union ipt_targinfo in parsable form to stdout. */
@@ -155,6 +155,9 @@
 			printf("-%hu", ntohs(r->max.tcp.port));
 		printf(" ");
 	}
+
+	if (r->flags & IP_NAT_RANGE_PROTO_RANDOM)
+		printf("--random ");
 }
 
 static struct iptables_target masq = { NULL,

Modified: trunk/iptables/extensions/libipt_SAME.c
===================================================================
--- trunk/iptables/extensions/libipt_SAME.c	2007-04-18 12:56:05 UTC (rev 6804)
+++ trunk/iptables/extensions/libipt_SAME.c	2007-04-18 14:00:11 UTC (rev 6805)
@@ -190,6 +190,7 @@
 	int count;
 	struct ipt_same_info *mr
 		= (struct ipt_same_info *)target->data;
+	int random = 0;
 
 	for (count = 0; count < mr->rangesize; count++) {
 		struct ip_nat_range *r = &mr->range[count];
@@ -203,10 +204,15 @@
 			printf(" ");
 		else
 			printf("-%s ", addr_to_dotted(&a));
+		if (r->flags & IP_NAT_RANGE_PROTO_RANDOM) 
+			random = 1;
 	}
 	
 	if (mr->info & IPT_SAME_NODST)
 		printf("--nodst ");
+
+	if (random)
+		printf("--random ");
 }
 
 static struct iptables_target same = {

Modified: trunk/iptables/extensions/libipt_SNAT.c
===================================================================
--- trunk/iptables/extensions/libipt_SNAT.c	2007-04-18 12:56:05 UTC (rev 6804)
+++ trunk/iptables/extensions/libipt_SNAT.c	2007-04-18 14:00:11 UTC (rev 6805)
@@ -214,8 +214,6 @@
 		if (r->max.tcp.port != r->min.tcp.port)
 			printf("-%hu", ntohs(r->max.tcp.port));
 	}
-	if (r->flags & IP_NAT_RANGE_PROTO_RANDOM)
-		printf(" random");
 }
 
 /* Prints out the targinfo. */
@@ -231,6 +229,8 @@
 	for (i = 0; i < info->mr.rangesize; i++) {
 		print_range(&info->mr.range[i]);
 		printf(" ");
+		if (info->mr.range[i].flags & IP_NAT_RANGE_PROTO_RANDOM)
+			printf("random ");
 	}
 }
 
@@ -245,6 +245,8 @@
 		printf("--to-source ");
 		print_range(&info->mr.range[i]);
 		printf(" ");
+		if (info->mr.range[i].flags & IP_NAT_RANGE_PROTO_RANDOM)
+			printf("--random ");
 	}
 }
 




More information about the netfilter-cvslog mailing list