summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladislav Grigoryev <vg.aetera@gmail.com>2021-12-02 14:26:49 +0300
committerHans Dedecker <dedeckeh@gmail.com>2021-12-12 21:16:18 +0100
commit5ca5e0b4d058a47d72ba4102acdcec826e203c41 (patch)
treed5d2ddb903b2bac05bdb37cfa9ab1bfe7f924867
parent8875960938faae70aa861866545dd7c5f8b7eb5b (diff)
downloadnetifd-5ca5e0b4d058a47d72ba4102acdcec826e203c41.tar.gz
netifd: allow disabling rule/rule6 config sections
Allow disabling IP rules similar to routes: https://git.openwrt.org/?p=project/netifd.git;a=commitdiff;h=327da9895327bc56b23413ee91a6e6b6e0e4329d Signed-off-by: Vladislav Grigoryev <vg.aetera@gmail.com>
-rw-r--r--iprule.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/iprule.c b/iprule.c
index c3a629f..b9e16a5 100644
--- a/iprule.c
+++ b/iprule.c
@@ -44,6 +44,7 @@ enum {
RULE_ACTION,
RULE_GOTO,
RULE_SUP_PREFIXLEN,
+ RULE_DISABLED,
__RULE_MAX
};
@@ -60,6 +61,7 @@ static const struct blobmsg_policy rule_attr[__RULE_MAX] = {
[RULE_SUP_PREFIXLEN] = { .name = "suppress_prefixlength", .type = BLOBMSG_TYPE_INT32 },
[RULE_ACTION] = { .name = "action", .type = BLOBMSG_TYPE_STRING },
[RULE_GOTO] = { .name = "goto", .type = BLOBMSG_TYPE_INT32 },
+ [RULE_DISABLED] = { .name = "disabled", .type = BLOBMSG_TYPE_BOOL },
};
const struct uci_blob_param_list rule_attr_list = {
@@ -203,6 +205,9 @@ iprule_add(struct blob_attr *attr, bool v6)
blobmsg_parse(rule_attr, __RULE_MAX, tb, blobmsg_data(attr), blobmsg_data_len(attr));
+ if ((cur = tb[RULE_DISABLED]) != NULL && blobmsg_get_bool(cur))
+ return;
+
rule = calloc(1, sizeof(*rule));
if (!rule)
return;