X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=service%2Fservice.c;h=c566bc70bf2d9a6a2969cc62bdcd32ad3850cc80;hb=c80009a5f56550483c1f1f0b4fdae9c040abd0ae;hp=aa393b97c904a46c743e92b82018440f556ae0de;hpb=916f95cb58604038695347ee41a430d8ca1f0556;p=project%2Fprocd.git diff --git a/service/service.c b/service/service.c index aa393b9..c566bc7 100644 --- a/service/service.c +++ b/service/service.c @@ -117,10 +117,9 @@ service_update(struct service *s, struct blob_attr *config, struct blob_attr **t service_validate_del(s); if (tb[SERVICE_SET_TRIGGER] && blobmsg_data_len(tb[SERVICE_SET_TRIGGER])) { - s->trigger = malloc(blob_pad_len(tb[SERVICE_SET_TRIGGER])); + s->trigger = blob_memdup(tb[SERVICE_SET_TRIGGER]); if (!s->trigger) return -1; - memcpy(s->trigger, tb[SERVICE_SET_TRIGGER], blob_pad_len(tb[SERVICE_SET_TRIGGER])); trigger_add(s->trigger, s); } @@ -259,15 +258,12 @@ service_dump(struct service *s, int verbose) c = blobmsg_open_table(&b, s->name); - if (avl_is_empty(&s->instances.avl)) { - blobmsg_close_table(&b, c); - return; + if (!avl_is_empty(&s->instances.avl)) { + i = blobmsg_open_table(&b, "instances"); + vlist_for_each_element(&s->instances, in, node) + instance_dump(&b, in, verbose); + blobmsg_close_table(&b, i); } - - i = blobmsg_open_table(&b, "instances"); - vlist_for_each_element(&s->instances, in, node) - instance_dump(&b, in, verbose); - blobmsg_close_table(&b, i); if (verbose && s->trigger) blobmsg_add_blob(&b, s->trigger); if (verbose && !list_empty(&s->validators)) @@ -446,9 +442,9 @@ service_start_early(char *name, char *cmdline) } blobmsg_close_array(&b, command); respawn = blobmsg_open_array(&b, "respawn"); - blobmsg_add_string(&b, NULL, "1"); blobmsg_add_string(&b, NULL, "3600"); - blobmsg_add_string(&b, NULL, "10"); + blobmsg_add_string(&b, NULL, "1"); + blobmsg_add_string(&b, NULL, "0"); blobmsg_close_array(&b, respawn); blobmsg_close_table(&b, instance); blobmsg_close_table(&b, instances);