Skip to content
Snippets Groups Projects
Commit 43654286 authored by Eric Vidal's avatar Eric Vidal :speech_balloon:
Browse files

fix switch of service at tree remove command

parent e76a9639
No related branches found
No related tags found
No related merge requests found
...@@ -973,8 +973,10 @@ void tree_rules(char const *base, char const *treename, uid_t *uids, uint8_t wha ...@@ -973,8 +973,10 @@ void tree_rules(char const *base, char const *treename, uid_t *uids, uint8_t wha
log_info("Permissions rules set successfully for tree: ", treename) ; log_info("Permissions rules set successfully for tree: ", treename) ;
} }
static void tree_service_switch_contents(char const *base, char const *treesrc, char const *treedst) static void tree_service_switch_contents(char const *base, char const *treesrc, char const *treedst, ssexec_t *info)
{ {
log_flow() ;
size_t pos = 0 ; size_t pos = 0 ;
resolve_tree_t tres = RESOLVE_TREE_ZERO ; resolve_tree_t tres = RESOLVE_TREE_ZERO ;
resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ; resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ;
...@@ -987,6 +989,9 @@ static void tree_service_switch_contents(char const *base, char const *treesrc, ...@@ -987,6 +989,9 @@ static void tree_service_switch_contents(char const *base, char const *treesrc,
FOREACH_SASTR(&sa, pos) { FOREACH_SASTR(&sa, pos) {
log_trace("switch service: ", sa.s + pos, " to tree: ", treedst) ; log_trace("switch service: ", sa.s + pos, " to tree: ", treedst) ;
tree_service_add(treedst, sa.s + pos, info) ;
if (!resolve_modify_field_g(swres, base, sa.s + pos, E_RESOLVE_SERVICE_TREENAME, treedst)) if (!resolve_modify_field_g(swres, base, sa.s + pos, E_RESOLVE_SERVICE_TREENAME, treedst))
log_dieu(LOG_EXIT_SYS, "modify resolve file of: ", sa.s + pos) ; log_dieu(LOG_EXIT_SYS, "modify resolve file of: ", sa.s + pos) ;
} }
...@@ -996,7 +1001,7 @@ static void tree_service_switch_contents(char const *base, char const *treesrc, ...@@ -996,7 +1001,7 @@ static void tree_service_switch_contents(char const *base, char const *treesrc,
resolve_free(swres) ; resolve_free(swres) ;
} }
void tree_remove(graph_t *g, char const *base, char const *treename) void tree_remove(graph_t *g, char const *base, char const *treename, ssexec_t *info)
{ {
log_flow() ; log_flow() ;
...@@ -1034,9 +1039,11 @@ void tree_remove(graph_t *g, char const *base, char const *treename) ...@@ -1034,9 +1039,11 @@ void tree_remove(graph_t *g, char const *base, char const *treename)
if (r) if (r)
current = tree ; current = tree ;
else
current = SS_DEFAULT_TREENAME ;
} }
tree_service_switch_contents(base, treename, current) ; tree_service_switch_contents(base, treename, current, info) ;
log_trace("remove resolve file of tree: ", treename) ; log_trace("remove resolve file of tree: ", treename) ;
resolve_remove_g(base, treename, DATA_TREE) ; resolve_remove_g(base, treename, DATA_TREE) ;
...@@ -1237,7 +1244,7 @@ int ssexec_tree_admin(int argc, char const *const *argv, ssexec_t *info) ...@@ -1237,7 +1244,7 @@ int ssexec_tree_admin(int argc, char const *const *argv, ssexec_t *info)
graph_build_tree(&graph, info->base.s, E_RESOLVE_TREE_MASTER_CONTENTS) ; graph_build_tree(&graph, info->base.s, E_RESOLVE_TREE_MASTER_CONTENTS) ;
if (what.remove) { if (what.remove) {
tree_remove(&graph, info->base.s, info->treename.s) ; tree_remove(&graph, info->base.s, info->treename.s, info) ;
goto freed ; goto freed ;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment