[LEDE-DEV] [PATCH v2][RFC] procd: service: add data within the service itself

John Crispin john at phrozen.org
Thu Nov 9 13:09:26 PST 2017


Hi

comments inline


On 25/10/17 17:59, Pierre Lebleu wrote:
> It gives the ability to create data within the service itself.
>
> Change since v1:
> - dump the data inside the service rather than in a "*" instance.
>
> Signed-off-by: Pierre Lebleu <pme.lebleu at gmail.com>
> ---
>   service/service.c | 44 +++++++++++++++++++++++++++++++++++++++++---
>   service/service.h |  3 +++
>   2 files changed, 44 insertions(+), 3 deletions(-)
>
> diff --git a/service/service.c b/service/service.c
> index ce730bc..45cb9aa 100644
> --- a/service/service.c
> +++ b/service/service.c
> @@ -84,6 +84,7 @@ service_alloc(const char *name)
>   	s->name = new_name;
>   	s->avl.key = s->name;
>   	INIT_LIST_HEAD(&s->validators);
> +	blobmsg_list_simple_init(&s->firewall);
>   
>   	return s;
>   }
[ ...]
> @@ -266,7 +285,7 @@ service_handle_set(struct ubus_context *ctx, struct ubus_object *obj,
>   	bool add = !strcmp(method, "add");
>   	int ret;
>   
> -	blobmsg_parse(service_set_attrs, __SERVICE_SET_MAX, tb, blob_data(msg), blob_len(msg));
> +	blobmsg_parse(service_set_attrs, __SERVICE_SET_MAX, tb, blobmsg_data(msg), blobmsg_data_len(msg));
>   	

this looks like a bug fix not related to the actual patch ?

> cur = tb[SERVICE_SET_NAME];
>   	if (!cur)
>   		return UBUS_STATUS_INVALID_ARGUMENT;
> @@ -306,6 +325,14 @@ service_dump(struct service *s, bool verbose)
>   	if (!s->autostart)
>   		blobmsg_add_u8(&b, "autostart", false);
>   
> +	if (!avl_is_empty(&s->firewall.avl)) {
> +		struct blobmsg_list_node *var;
> +		i = blobmsg_open_table(&b, "data");
> +		blobmsg_list_for_each(&s->firewall, var)
> +			blobmsg_add_blob(&b, var->data);
> +		blobmsg_close_table(&b, i);
> +	}
> +
>   	if (!avl_is_empty(&s->instances.avl)) {
>   		i = blobmsg_open_table(&b, "instances");
>   		vlist_for_each_element(&s->instances, in, node)

[,,,]

> diff --git a/service/service.h b/service/service.h
> index a433c9f..2202a9e 100644
> --- a/service/service.h
> +++ b/service/service.h
> @@ -18,6 +18,7 @@
>   #include <libubox/avl.h>
>   #include <libubox/vlist.h>
>   #include <libubox/list.h>
> +#include "../utils/utils.h"
>   
>   extern struct avl_tree services;
>   
> @@ -46,6 +47,8 @@ struct service {
>   	struct blob_attr *trigger;
>   	struct vlist_tree instances;
>   	struct list_head validators;
> +	struct blob_attr *data;
> +	struct blobmsg_list firewall;

can we name this different than firewall ?

     John

>   };
>   
>   void service_validate_add(struct service *s, struct blob_attr *attr);




More information about the Lede-dev mailing list