+ if (in->trace)
+ blobmsg_add_u8(b, "trace", true);
+
+ if (in->no_new_privs)
+ blobmsg_add_u8(b, "no_new_privs", true);
+
+ if (in->seccomp)
+ blobmsg_add_string(b, "seccomp", in->seccomp);
+
+ if (in->pidfile)
+ blobmsg_add_string(b, "pidfile", in->pidfile);
+
+ if (in->has_jail) {
+ void *r = blobmsg_open_table(b, "jail");
+ if (in->jail.name)
+ blobmsg_add_string(b, "name", in->jail.name);
+ if (in->jail.hostname)
+ blobmsg_add_string(b, "hostname", in->jail.hostname);
+ blobmsg_add_u8(b, "procfs", in->jail.procfs);
+ blobmsg_add_u8(b, "sysfs", in->jail.sysfs);
+ blobmsg_add_u8(b, "ubus", in->jail.ubus);
+ blobmsg_add_u8(b, "log", in->jail.log);
+ blobmsg_add_u8(b, "ronly", in->jail.ronly);
+ blobmsg_close_table(b, r);
+ if (!avl_is_empty(&in->jail.mount.avl)) {
+ struct blobmsg_list_node *var;
+ void *e = blobmsg_open_table(b, "mount");
+ blobmsg_list_for_each(&in->jail.mount, var)
+ blobmsg_add_string(b, blobmsg_name(var->data), blobmsg_data(var->data));
+ blobmsg_close_table(b, e);
+ }
+ }
+