enum iptables_command {
IPTABLES_COMMAND_APPEND,
+ IPTABLES_COMMAND_INSERT,
IPTABLES_COMMAND_DELETE,
IPTABLES_COMMAND_POLICY,
IPTABLES_COMMAND_CHAIN_INSERT,
opterr = 0;
while ((c = getopt_long(argc, argv,
- "-A:D:P:N:X:F:Lt:", NULL, NULL)) != -1) {
+ "-A:I:D:P:N:X:F:Lt:", NULL, NULL)) != -1) {
switch (c) {
case 'A':
chain = optarg;
cmd = IPTABLES_COMMAND_APPEND;
break;
+ case 'I':
+ chain = optarg;
+ cmd = IPTABLES_COMMAND_INSERT;
+ break;
case 'D':
chain = optarg;
cmd = IPTABLES_COMMAND_DELETE;
}
out:
- if (table == NULL)
+ if (!table)
table = "filter";
for (i = optind - 1; i < argc; i++) {
- if (rule != NULL) {
+ if (rule) {
tmp = rule;
rule = g_strdup_printf("%s %s", rule, argv[i]);
g_free(tmp);
case IPTABLES_COMMAND_APPEND:
err = __connman_iptables_append(table, chain, rule);
break;
+ case IPTABLES_COMMAND_INSERT:
+ err = __connman_iptables_insert(table, chain, rule);
+ break;
case IPTABLES_COMMAND_DELETE:
err = __connman_iptables_delete(table, chain, rule);
break;
err = __connman_iptables_flush_chain(table, chain);
break;
case IPTABLES_COMMAND_DUMP:
- __connman_log_init(argv[0], "*", FALSE, FALSE,
+ __connman_log_init(argv[0], "*", false, false,
"iptables-test", "1");
err = __connman_iptables_dump(table);
break;
case IPTABLES_COMMAND_UNKNOWN:
printf("Missing command\n");
- printf("usage: iptables-test [-t table] {-A|-D} chain rule\n");
+ printf("usage: iptables-test [-t table] {-A|-I|-D} chain rule\n");
printf(" iptables-test [-t table] {-N|-X|-F} chain\n");
printf(" iptables-test [-t table] -L\n");
printf(" iptables-test [-t table] -P chain target\n");