parent
68d5ba5429
commit
fa3a9930a7
29
tc/f_fw.c
29
tc/f_fw.c
|
|
@ -19,7 +19,7 @@
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <linux/if.h> /* IFNAMSIZ */
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "tc_util.h"
|
#include "tc_util.h"
|
||||||
|
|
||||||
|
|
@ -70,6 +70,24 @@ static int fw_parse_opt(struct filter_util *qu, char *handle, int argc, char **a
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
} else if (matches(*argv, "action") == 0) {
|
||||||
|
NEXT_ARG();
|
||||||
|
if (parse_action(&argc, &argv, TCA_FW_ACT, n)) {
|
||||||
|
fprintf(stderr, "Illegal fw \"action\"\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
} else if (strcmp(*argv, "indev") == 0) {
|
||||||
|
char d[IFNAMSIZ+1];
|
||||||
|
memset(d, 0, sizeof (d));
|
||||||
|
argc--;
|
||||||
|
argv++;
|
||||||
|
if (argc < 1) {
|
||||||
|
fprintf(stderr, "Illegal indev\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
strncpy(d, *argv, sizeof (d) - 1);
|
||||||
|
addattr_l(n, MAX_MSG, TCA_FW_INDEV, d, strlen(d) + 1);
|
||||||
} else if (strcmp(*argv, "help") == 0) {
|
} else if (strcmp(*argv, "help") == 0) {
|
||||||
explain();
|
explain();
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -105,6 +123,15 @@ static int fw_print_opt(struct filter_util *qu, FILE *f, struct rtattr *opt, __u
|
||||||
|
|
||||||
if (tb[TCA_FW_POLICE])
|
if (tb[TCA_FW_POLICE])
|
||||||
tc_print_police(f, tb[TCA_FW_POLICE]);
|
tc_print_police(f, tb[TCA_FW_POLICE]);
|
||||||
|
if (tb[TCA_FW_INDEV]) {
|
||||||
|
struct rtattr *idev = tb[TCA_FW_INDEV];
|
||||||
|
fprintf(f, "input dev %s ",(char *)RTA_DATA(idev));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tb[TCA_FW_ACT]) {
|
||||||
|
fprintf(f, "\n");
|
||||||
|
tc_print_action(f, tb[TCA_FW_ACT]);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue