From cdae618621fd23b47a8c50426045b1e52c06909b Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Mon, 20 Jun 2022 11:41:44 +1100 Subject: [PATCH] replace create_live function by create_live_state function --- .../{create_live.c => create_live_state.c} | 30 +++++++------------ 1 file changed, 11 insertions(+), 19 deletions(-) rename src/lib66/utils/{create_live.c => create_live_state.c} (56%) diff --git a/src/lib66/utils/create_live.c b/src/lib66/utils/create_live_state.c similarity index 56% rename from src/lib66/utils/create_live.c rename to src/lib66/utils/create_live_state.c index 525a5e5d..b7b66411 100644 --- a/src/lib66/utils/create_live.c +++ b/src/lib66/utils/create_live_state.c @@ -1,5 +1,5 @@ /* - * create_live.c + * create_live_state.c * * Copyright (c) 2018-2021 Eric Vidal <eric@obarun.org> * @@ -13,7 +13,6 @@ */ #include <sys/types.h> -#include <sys/stat.h> #include <unistd.h> #include <oblibs/log.h> @@ -21,43 +20,36 @@ #include <oblibs/types.h> #include <oblibs/directory.h> -#include <skalibs/types.h> - #include <66/ssexec.h> #include <66/utils.h> -#include <66/tree.h> -#include <66/resolve.h> #include <66/constants.h> -int create_live(ssexec_t *info) +int create_live_state(ssexec_t *info, char const *treename) { log_flow() ; int r ; - char ownerstr[UID_FMT] ; - size_t ownerlen = uid_fmt(ownerstr,info->owner) ; - size_t stelen = info->live.len + SS_STATE_LEN + 1 + ownerlen + 1 + info->treename.len ; gid_t gidowner ; - char ste[stelen + 1] ; - - ownerstr[ownerlen] = 0 ; + size_t treenamelen = strlen(treename) ; + char ste[info->live.len + SS_STATE_LEN + 1 + info->ownerlen + 1 + treenamelen + 1] ; - if (!yourgid(&gidowner,info->owner)) - log_warnusys_return(LOG_EXIT_ZERO, "get gid of: ", ownerstr) ; + if (!yourgid(&gidowner, info->owner)) + log_warnusys_return(LOG_EXIT_ZERO, "get gid of: ", info->ownerstr) ; - auto_strings(ste, info->live.s, SS_STATE + 1, "/", ownerstr, "/", info->treename.s) ; + auto_strings(ste, info->live.s, SS_STATE + 1, "/", info->ownerstr, "/", treename) ; r = scan_mode(ste, S_IFDIR) ; - if (r < 0) return 0 ; + if (r < 0) + log_warnsys_return(LOG_EXIT_ZERO, "conflicting format for: ", ste) ; if (!r) { r = dir_create_parent(ste, 0700) ; if (!r) log_warnusys_return(LOG_EXIT_ZERO, "create directory: ", ste) ; - ste[info->live.len + SS_STATE_LEN + ownerlen + 1] = 0 ; - if (chown(ste,info->owner,gidowner) < 0) + ste[info->live.len + SS_STATE_LEN + info->ownerlen + 1] = 0 ; + if (chown(ste, info->owner, gidowner) < 0) log_warnusys_return(LOG_EXIT_ZERO, "chown: ", ste) ; } -- GitLab