X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fprocd.git;a=blobdiff_plain;f=service.h;h=6448e5ecbaa54cf6eb48154839de895bc27c01ec;hp=c2afdaedf1a4b945a29470bfa372ad5bb0ecbe34;hb=f9d31edb8938341b9217ee4c14eb58111414eb97;hpb=e0d721487a618490a7db06f76904868a71684071 diff --git a/service.h b/service.h index c2afdae..6448e5e 100644 --- a/service.h +++ b/service.h @@ -1,21 +1,56 @@ +/* + * Copyright (C) 2013 Felix Fietkau + * Copyright (C) 2013 John Crispin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 2.1 + * as published by the Free Software Foundation + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __PROCD_SERVICE_H +#define __PROCD_SERVICE_H + #include #include +#include extern struct avl_tree services; -struct service { +struct vrule { struct avl_node avl; - const char *name; + char *option; + char *rule; +}; - struct blob_attr *config; - struct vlist_tree instances; +struct validate { + struct avl_node avl; + struct list_head list; + + char *package; + char *type; + + struct avl_tree rules; }; -struct service_instance { - struct vlist_node node; +struct service { + struct avl_node avl; const char *name; - struct blob_attr *config; - struct uloop_process proc; + struct blob_attr *trigger; + struct vlist_tree instances; + struct list_head validators; }; +void service_validate_add(struct service *s, struct blob_attr *attr); +void service_validate_dump(struct blob_buf *b, struct service *s); +void service_validate_dump_all(struct blob_buf *b, char *p, char *s); +void service_validate_del(struct service *s); +void service_validate_init(void); +void service_init(void); + +#endif