add .data to instance_dump()
[project/procd.git] / service / instance.c
index 1f85914..c22e546 100644 (file)
@@ -431,9 +431,7 @@ instance_config_parse(struct service_instance *in)
                in->respawn_retry = vals[2];
        }
        if (tb[INSTANCE_ATTR_TRIGGER]) {
-               in->trigger = blob_memdup(tb[INSTANCE_ATTR_TRIGGER]);
-               if (!in->trigger)
-                       return -1;
+               in->trigger = tb[INSTANCE_ATTR_TRIGGER];
                trigger_add(in->trigger, in);
        }
 
@@ -531,7 +529,6 @@ instance_free(struct service_instance *in)
        uloop_timeout_cancel(&in->timeout);
        trigger_del(in);
        watch_del(in);
-       free(in->trigger);
        instance_config_cleanup(in);
        free(in->config);
        free(in);
@@ -582,6 +579,14 @@ void instance_dump(struct blob_buf *b, struct service_instance *in, int verbose)
                blobmsg_close_table(b, e);
        }
 
+       if (!avl_is_empty(&in->data.avl)) {
+               struct blobmsg_list_node *var;
+               void *e = blobmsg_open_table(b, "data");
+               blobmsg_list_for_each(&in->data, var)
+                       blobmsg_add_blob(b, var->data);
+               blobmsg_close_table(b, e);
+       }
+
        if (!avl_is_empty(&in->limits.avl)) {
                struct blobmsg_list_node *var;
                void *e = blobmsg_open_table(b, "limits");