iptables-edit: adds --table to iptables-restore
PATCH 1/3 iptables-edit: adds --table to iptables-restore
adds --table to iptables-restore which allows to restore only the supplied table
Signed-off-by Peter Warasin <[email protected]>
Signature · 5 lines
:: e n d i a n :: open source - open minds :: peter warasin :: http://www.endian.com :: [email protected]
iptables-restore.c renamed from iptables-restore.c.orig +11 -1
@@ -32,6 +32,7 @@ { "help", 0, 0, 'h' }, { "noflush", 0, 0, 'n'}, { "modprobe", 1, 0, 'M'}, + { "table", 1, 0, 'T'}, { 0 } };
@@ -46,6 +47,7 @@" [ --test ]\n" " [ --help ]\n" " [ --noflush ]\n" +" [ --table=<TABLE> ]\n" " [ --modprobe=<command>]\n", name);exit (1 );
@@ -114,6 +116,7 @@FILE *in;const char *modprobe =0 ;int in_table =0 , testing =0 ; +const char *tablename =0 ; program_name ="iptables-restore" ; program_version =IPTABLES_VERSION ;
@@ -127,7 +130,7 @@init_extensions ();#endif -while ((c =getopt_long (argc, argv,"bcvthnM:" , options,NULL )) !=-1 ) { +while ((c =getopt_long (argc, argv,"bcvthnM:T:" , options,NULL )) !=-1 ) {switch (c) {case 'b' : binary =1 ;
@@ -151,6 +154,9 @@case 'M' : modprobe = optarg;break ; +case 'T' : + tablename = optarg; +break ; } }
@@ -203,6 +209,8 @@strncpy (curtable, table,IPT_TABLE_MAXNAMELEN ); curtable[IPT_TABLE_MAXNAMELEN ] ='\0' ; +if (tablename && (strcmp (tablename, table) !=0 )) +continue ;if (handle)iptc_free (&handle);
@@ -429,6 +437,8 @@free_argv (); } +if (tablename && (strcmp (tablename, curtable) !=0 )) +continue ;if (!ret) {fprintf (stderr,"%s: line %u failed\n" , program_name, line);