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

handle modification of the Master resolve for trees

parent b9cc20a6
No related branches found
No related tags found
No related merge requests found
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <66/config.h> #include <66/config.h>
#include <66/constants.h> #include <66/constants.h>
#include <66/utils.h> #include <66/utils.h>
#include <66/resolve.h>
int tree_switch_current(char const *base, char const *treename) int tree_switch_current(char const *base, char const *treename)
...@@ -35,14 +36,14 @@ int tree_switch_current(char const *base, char const *treename) ...@@ -35,14 +36,14 @@ int tree_switch_current(char const *base, char const *treename)
log_flow() ; log_flow() ;
ssize_t r ; ssize_t r ;
size_t baselen = strlen(base), treelen = strlen(treename), newlen = 0, packlen = 0 ;
resolve_tree_t tres = RESOLVE_TREE_ZERO ;
resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ;
char pack[UID_FMT] ; char pack[UID_FMT] ;
size_t baselen = strlen(base) ; char dst[baselen + SS_TREE_CURRENT_LEN + 1 + packlen + treelen + 2 + 1] ;
size_t treelen = strlen(treename) ;
size_t newlen ;
size_t packlen ;
packlen = uint_fmt(pack,MYUID) ; packlen = uint_fmt(pack,MYUID) ;
pack[packlen] = 0 ; pack[packlen] = 0 ;
char dst[baselen + SS_TREE_CURRENT_LEN + 1 + packlen + treelen + 2 + 1] ;
auto_strings(dst,base,SS_SYSTEM,"/",treename) ; auto_strings(dst,base,SS_SYSTEM,"/",treename) ;
...@@ -65,5 +66,10 @@ int tree_switch_current(char const *base, char const *treename) ...@@ -65,5 +66,10 @@ int tree_switch_current(char const *base, char const *treename)
if (!atomic_symlink(dst, current,"tree_switch_current")) return 0 ; if (!atomic_symlink(dst, current,"tree_switch_current")) return 0 ;
if (!resolve_modify_field_g(wres, base, SS_MASTER + 1, TREE_ENUM_CURRENT, treename))
log_warnu_return(LOG_EXIT_ZERO, "modify field: ", resolve_tree_field_table[TREE_ENUM_CURRENT].field," of tree: ", SS_MASTER + 1, " with value: ", treename) ;
resolve_free(wres) ;
return 1 ; return 1 ;
} }
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