From: Vladislav Grigoryev Date: Thu, 2 Dec 2021 11:26:49 +0000 (+0300) Subject: netifd: allow disabling rule/rule6 config sections X-Git-Url: http://git.openwrt.org/feed/packages.git;openwrt-19.07?a=commitdiff_plain;h=5ca5e0b4d058a47d72ba4102acdcec826e203c41;p=project%2Fnetifd.git 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 --- 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;