diff options
author | Pierre Lebleu <pme.lebleu@gmail.com> | 2017-05-04 10:52:58 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2017-05-09 23:54:15 +0200 |
commit | 7d3d9dcebe1754b955237fb97e5eaa3d2ad7a2b3 (patch) | |
tree | 50733253fd702031b972322b139e5dff25c21005 | |
parent | 53ef9f11d47a6a8c3c913970769fabde185fbcb6 (diff) | |
download | firewall3-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.c | 24 |
1 files changed, 17 insertions, 7 deletions
@@ -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); |