diff --git a/src/lib66/service/service_enable_disable.c b/src/lib66/service/service_enable_disable.c index 20d309ce9b173b96229b4ff05dd68dcd36a46272..0ff196a214437c855fbcfb8b6af4fcb294708a34 100644 --- a/src/lib66/service/service_enable_disable.c +++ b/src/lib66/service/service_enable_disable.c @@ -79,9 +79,9 @@ void service_enable_disable(graph_t *g, struct resolve_hash_s *hash, struct reso if (action) { if (info->opt_tree) - tree_service_remove(res->sa.s + res->path.home, res->sa.s + res->treename, res->sa.s + res->name) ; - - tree_service_add(treename, res->sa.s + res->name, info) ; + service_switch_tree(res, res->sa.s + res->path.home, treename, info) ; + else + tree_service_add(treename, res->sa.s + res->name, info) ; } res->enabled = action ; @@ -146,9 +146,9 @@ void service_enable_disable(graph_t *g, struct resolve_hash_s *hash, struct reso if (action) { if (info->opt_tree) - tree_service_remove(h->res.sa.s + h->res.path.home, h->res.sa.s + h->res.treename, h->res.sa.s + h->res.name) ; - - tree_service_add(treename, h->res.sa.s + h->res.name, info) ; + service_switch_tree(&h->res, h->res.sa.s + h->res.path.home, treename, info) ; + else + tree_service_add(treename, h->res.sa.s + h->res.name, info) ; } h->res.enabled = action ;