iptables: Move target and matches preparation routines
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Thu, 27 Oct 2011 07:26:34 +0000 (10:26 +0300)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 28 Oct 2011 19:34:28 +0000 (21:34 +0200)
src/iptables.c

index e1370c4..e3129f6 100644 (file)
@@ -1462,10 +1462,18 @@ static int iptables_command(int argc, char *argv[])
 
                case 'j':
                        target_name = optarg;
+                       xt_t = prepare_target(table, target_name);
+                       if (xt_t == NULL)
+                               goto out;
+
                        break;
 
                case 'm':
                        match_name = optarg;
+                       xt_m = prepare_matches(table, &xt_rm, match_name);
+                       if (xt_m == NULL)
+                               goto out;
+
                        break;
 
                case 'o':
@@ -1572,16 +1580,9 @@ static int iptables_command(int argc, char *argv[])
        }
 
        if (chain) {
-               xt_t = prepare_target(table, target_name);
                if (xt_t == NULL)
                        goto out;
 
-               if (match_name != NULL) {
-                       xt_m = prepare_matches(table, &xt_rm, match_name);
-                       if (xt_m == NULL)
-                               goto out;
-               }
-
                if (delete == TRUE) {
                        DBG("Deleting %s to %s (match %s)\n",
                                        target_name, chain, match_name);