diff options
| author | Felix Fietkau | 2025-03-09 15:37:16 +0000 |
|---|---|---|
| committer | Felix Fietkau | 2025-03-09 15:37:16 +0000 |
| commit | 7326459bd7438a47751873bbd4c2d45b6f31f8b6 (patch) | |
| tree | 0785620653ad00f7ab5e109d3b5a3db1bf96317f | |
| parent | d8b43985e4d794efaf26823252e39373f7c975a0 (diff) | |
| download | unetd-7326459bd7438a47751873bbd4c2d45b6f31f8b6.tar.gz | |
ubus: dump service information on network_get
Signed-off-by: Felix Fietkau <nbd@nbd.name>
| -rw-r--r-- | ubus.c | 22 |
1 files changed, 21 insertions, 1 deletions
@@ -56,8 +56,9 @@ static void __network_dump(struct blob_buf *buf, struct network *net) { struct network_host *local = net->net_config.local_host; + struct network_service *s; struct network_peer *peer; - void *c, *p; + void *c, *p, *m; char *str; c = blobmsg_open_table(buf, "config"); @@ -105,6 +106,25 @@ __network_dump(struct blob_buf *buf, struct network *net) blobmsg_close_table(buf, p); } blobmsg_close_table(buf, c); + + + c = blobmsg_open_table(buf, "services"); + vlist_for_each_element(&net->services, s, node) { + p = blobmsg_open_table(buf, network_service_name(s)); + + if (s->type) + blobmsg_add_string(buf, "type", s->type); + + m = blobmsg_open_array(buf, "members"); + for (size_t i = 0; i < s->n_members; i++) + blobmsg_add_string(buf, NULL, network_host_name(s->members[i])); + blobmsg_close_array(buf, m); + + if (s->config) + blobmsg_add_blob(buf, s->config); + blobmsg_close_table(buf, p); + } + blobmsg_close_table(buf, c); } static int |