summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Lebleu <pme.lebleu@gmail.com>2017-05-04 10:52:58 +0200
committerJo-Philipp Wich <jo@mein.io>2017-05-09 23:54:15 +0200
commit7d3d9dcebe1754b955237fb97e5eaa3d2ad7a2b3 (patch)
tree50733253fd702031b972322b139e5dff25c21005
parent53ef9f11d47a6a8c3c913970769fabde185fbcb6 (diff)
downloadfirewall3-7d3d9dcebe1754b955237fb97e5eaa3d2ad7a2b3.tar.gz
firewall3: display the section type for UBUS rules
It gives the ability to display the section type for rules pushed via procd services and netifd interface firewall data. Signed-off-by: Pierre Lebleu <pme.lebleu@gmail.com>
-rw-r--r--ubus.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/ubus.c b/ubus.c
index f353d01..dd1075f 100644
--- a/ubus.c
+++ b/ubus.c
@@ -277,18 +277,23 @@ fw3_ubus_rules(struct blob_buf *b)
blobmsg_for_each_attr(rule, dcur, rrem) {
void *k = blobmsg_open_table(b, "");
-
- snprintf(comment, sizeof(comment), "ubus:%s[%s] rule %d",
- iface_name, iface_proto, n++);
+ char *type = NULL;
blobmsg_for_each_attr(ropt, rule, orem) {
+ if (!strcmp(blobmsg_name(ropt), "type"))
+ type = blobmsg_data(ropt);
if (!strcmp(blobmsg_name(ropt), "device"))
l3_device = blobmsg_get_string(ropt);
else if (strcmp(blobmsg_name(ropt), "name"))
blobmsg_add_blob(b, ropt);
}
+ snprintf(comment, sizeof(comment), "ubus:%s[%s] %s %d",
+ iface_name, iface_proto,
+ type ? type : "rule", n++);
+
blobmsg_add_string(b, "name", comment);
+
blobmsg_add_string(b, "device", l3_device);
blobmsg_close_table(b, k);
}
@@ -317,13 +322,18 @@ fw3_ubus_rules(struct blob_buf *b)
blobmsg_for_each_attr(rule, dcur, rrem) {
void *k = blobmsg_open_table(b, "");
+ char *type = NULL;
- snprintf(comment, sizeof(comment), "ubus:%s[%s] rule %d",
- blobmsg_name(c), blobmsg_name(cur), n++);
-
- blobmsg_for_each_attr(ropt, rule, orem)
+ blobmsg_for_each_attr(ropt, rule, orem) {
+ if (!strcmp(blobmsg_name(ropt), "type"))
+ type = blobmsg_data(ropt);
if (strcmp(blobmsg_name(ropt), "name"))
blobmsg_add_blob(b, ropt);
+ }
+
+ snprintf(comment, sizeof(comment), "ubus:%s[%s] %s %d",
+ blobmsg_name(c), blobmsg_name(cur),
+ type ? type : "rule", n++);
blobmsg_add_string(b, "name", comment);
blobmsg_close_table(b, k);