[netfilter-cvslog] r3651 - in trunk/iptables: extensions include/linux/netfilter_ipv4

gandalf at netfilter.org gandalf at netfilter.org
Wed Feb 2 20:20:15 CET 2005


Author: gandalf at netfilter.org
Date: 2005-02-02 20:20:15 +0100 (Wed, 02 Feb 2005)
New Revision: 3651

Modified:
   trunk/iptables/extensions/libipt_multiport.c
   trunk/iptables/include/linux/netfilter_ipv4/ipt_multiport.h
Log:
Add support for inversion to multiport revision 1.

Signed-off-by: Phil Oester <kernel at linuxace.com>


Modified: trunk/iptables/extensions/libipt_multiport.c
===================================================================
--- trunk/iptables/extensions/libipt_multiport.c	2005-02-01 18:25:55 UTC (rev 3650)
+++ trunk/iptables/extensions/libipt_multiport.c	2005-02-02 19:20:15 UTC (rev 3651)
@@ -31,13 +31,13 @@
 {
 	printf(
 "multiport v%s options:\n"
-" --source-ports port[,port:port,port...]\n"
+" --source-ports [!] port[,port:port,port...]\n"
 " --sports ...\n"
 "				match source port(s)\n"
-" --destination-ports port[,port:port,port...]\n"
+" --destination-ports [!] port[,port:port,port...]\n"
 " --dports ...\n"
 "				match destination port(s)\n"
-" --ports port[,port:port,port]\n"
+" --ports [!] port[,port:port,port]\n"
 "				match both source and destination port(s)\n",
 IPTABLES_VERSION);
 }
@@ -255,8 +255,7 @@
 	}
 
 	if (invert)
-		exit_error(PARAMETER_PROBLEM,
-			   "multiport does not support invert");
+		multiinfo->invert = 1;
 
 	if (*flags)
 		exit_error(PARAMETER_PROBLEM,
@@ -362,6 +361,9 @@
 		break;
 	}
 
+	if (multiinfo->invert)
+		printf("! ");
+
 	for (i=0; i < multiinfo->count; i++) {
 		printf("%s", i ? "," : "");
 		print_port(multiinfo->ports[i], ip->proto, numeric);
@@ -422,6 +424,9 @@
 		break;
 	}
 
+	if (multiinfo->invert)
+		printf("! ");
+
 	for (i=0; i < multiinfo->count; i++) {
 		printf("%s", i ? "," : "");
 		print_port(multiinfo->ports[i], ip->proto, 1);

Modified: trunk/iptables/include/linux/netfilter_ipv4/ipt_multiport.h
===================================================================
--- trunk/iptables/include/linux/netfilter_ipv4/ipt_multiport.h	2005-02-01 18:25:55 UTC (rev 3650)
+++ trunk/iptables/include/linux/netfilter_ipv4/ipt_multiport.h	2005-02-02 19:20:15 UTC (rev 3651)
@@ -24,5 +24,6 @@
 	u_int8_t count;				/* Number of ports */
 	u_int16_t ports[IPT_MULTI_PORTS];	/* Ports */
 	u_int8_t pflags[IPT_MULTI_PORTS];	/* Port flags */
+	u_int8_t invert;			/* Invert flag */
 };
 #endif /*_IPT_MULTIPORT_H*/




More information about the netfilter-cvslog mailing list