diff --git a/src/66/66-tree.c b/src/66/66-tree.c index bf2dd703117d7c6b8b284ff83176f626ff7c4cca..1d5afe701678ee82ab20224f36150062ebb849c6 100644 --- a/src/66/66-tree.c +++ b/src/66/66-tree.c @@ -34,6 +34,8 @@ #include <66/constants.h> #include <66/db.h> #include <66/enum.h> +#include <66/state.h> +#include <66/resolve.h> #include <s6/s6-supervise.h> #include <s6-rc/s6rc-servicedir.h> @@ -256,7 +258,7 @@ int create_tree(char const *tree,char const *treename) } VERBO3 strerr_warnt1x("write resolve file of inner bundle") ; - if (!ss_resolve_write(&res,dst,SS_MASTER+1,SS_SIMPLE)) + if (!ss_resolve_write(&res,dst,SS_MASTER+1)) { VERBO3 strerr_warnwu1sys("write resolve file of inner bundle") ; ss_resolve_free(&res) ; @@ -503,11 +505,11 @@ int tree_unsupervise(char const *tree, char const *treename,uid_t owner,char con pres = &genalloc_s(ss_resolve_t,&graph.sorted)[i] ; char *string = pres->sa.s ; char *name = string + pres->name ; - if (pres->type == CLASSIC && pres->run) + if (pres->type == CLASSIC && (ss_state_check(string + pres->state,name))) { if (!stra_add(&nclassic,name)) strerr_diefu2sys(111,"append services selection with: ",name) ; } - else if (pres->type >= BUNDLE && pres->run) + else if (pres->type >= BUNDLE && (ss_state_check(string + pres->state,name))) { if (!stra_add(&nrc,name)) strerr_diefu2sys(111,"append services selection with: ",name) ; } @@ -520,7 +522,7 @@ int tree_unsupervise(char const *tree, char const *treename,uid_t owner,char con if (!stralloc_0(&scandir)) retstralloc(111,"tree_unsupervise") ; if (!stralloc_cats(&livetree,pres->sa.s + pres->live)) retstralloc(111,"tree_unsupervise") ; if (!stralloc_0(&livetree)) retstralloc(111,"tree_unsupervise") ; - if (!stralloc_cats(&reslive,pres->sa.s + pres->resolve)) retstralloc(111,"tree_unsupervise") ; + if (!stralloc_cats(&reslive,pres->sa.s + pres->state)) retstralloc(111,"tree_unsupervise") ; if (!stralloc_0(&reslive)) retstralloc(111,"tree_unsupervise") ; } }