From e7cb1cce84cc66d8e6d2eb6bd89873426b43f241 Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Wed, 18 Sep 2019 23:36:21 +1100 Subject: [PATCH] clean code and remove useless function --- src/include/66/db.h | 13 - src/lib66/db_cmd_master.c | 441 --------------------------------- src/lib66/db_get_permissions.c | 57 ----- src/lib66/deps-lib/66 | 2 - src/lib66/parser_enabled.c | 54 ++-- src/lib66/state.c | 13 +- src/lib66/svc_init.c | 36 ++- 7 files changed, 33 insertions(+), 583 deletions(-) delete mode 100644 src/lib66/db_cmd_master.c delete mode 100644 src/lib66/db_get_permissions.c diff --git a/src/include/66/db.h b/src/include/66/db.h index 81a5ac02..23711488 100644 --- a/src/include/66/db.h +++ b/src/include/66/db.h @@ -19,23 +19,10 @@ #include <skalibs/genalloc.h> #include <66/ssexec.h> -extern int db_cmd_master(unsigned int verbosity,char const *cmd) ; -extern int db_update_master(int argc, char const *const *argv) ; -extern int db_bundle_modif(genalloc *bundle,unsigned int verbosity, char const *src, unsigned int action) ; -//extern int db_bundle_contents(graph_t *g, char const *name, char const *src, unsigned int verbosity, unsigned int action) ; -extern int db_write_contents(genalloc *ga, char const *bundle,char const *dir) ; -extern int db_write_master(ssexec_t *info, genalloc *ga, char const *dir,int both) ; - extern int db_compile(char const *workdir, char const *tree, char const *treename,char const *const *envp) ; - extern int db_find_compiled_state(char const *livetree, char const *treename) ; - -extern int db_get_permissions(stralloc *uid, char const *tree) ; - extern int db_update(char const *newdb, ssexec_t *info,char const *const *envp) ; - extern int db_ok(char const *livetree, char const *treename) ; - extern int db_switch_to(ssexec_t *info, char const *const *envp,unsigned int where) ; #endif diff --git a/src/lib66/db_cmd_master.c b/src/lib66/db_cmd_master.c deleted file mode 100644 index 7227c058..00000000 --- a/src/lib66/db_cmd_master.c +++ /dev/null @@ -1,441 +0,0 @@ -/* - * db_cmd_start.c - * - * Copyright (c) 2018-2019 Eric Vidal <eric@obarun.org> - * - * All rights reserved. - * - * This file is part of Obarun. It is subject to the license terms in - * the LICENSE file found in the top-level directory of this - * distribution. - * This file may not be copied, modified, propagated, or distributed - * except according to the terms contained in the LICENSE file./ - */ - -#include <66/db.h> - -#include <s6-rc/config.h>//S6RC_BINPREFIX - -#include <sys/stat.h> -#include <unistd.h> - -#include <oblibs/error2.h> -#include <oblibs/string.h> -#include <oblibs/stralist.h> -#include <oblibs/files.h> -#include <oblibs/obgetopt.h> -#include <oblibs/directory.h> -#include <oblibs/strakeyval.h> - -#include <skalibs/types.h> -#include <skalibs/stralloc.h> -#include <skalibs/genalloc.h> -#include <skalibs/djbunix.h> -#include <skalibs/avltree.h> - -#include <66/constants.h> -#include <66/parser.h> -#include <66/utils.h> - -#include <stdio.h> -//USAGE "db_update_start [ -v verbosity ] [ -a add ] [ -d delete ] [ -c copy to ] [ -B bundle ] [ -D directory ] service" -// -c -> copy the contents file to the given directory, in this case service is not mandatory -int db_update_master(int argc, char const *const *argv) -{ - int r ; - unsigned int add, del, copy, verbosity ; - - verbosity = 1 ; - - add = del = copy = 0 ; - - stralloc contents = STRALLOC_ZERO ; - stralloc tocopy = STRALLOC_ZERO ; - - genalloc in = GENALLOC_ZERO ;//type stralist - genalloc gargv = GENALLOC_ZERO ;//type stralist - - char const *bundle = 0 ; - char const *dir = 0 ; - - { - subgetopt_t l = SUBGETOPT_ZERO ; - - for (;;) - { - int opt = getopt_args(argc,argv, "v:adc:D:B:", &l) ; - if (opt == -1) break ; - if (opt == -2){ strerr_warnw1x("options must be set first") ; return 0 ; } - switch (opt) - { - case 'v' : if (!uint0_scan(l.arg, &verbosity)) return 0 ; break ; - case 'a' : add = 1 ; if (del) return 0 ; break ; - case 'd' : del = 1 ; if (add) return 0 ; break ; - case 'D' : dir = l.arg ; break ; - case 'B' : bundle = l.arg ; break ; - case 'c' : copy = 1 ; - if(!stralloc_cats(&tocopy,l.arg)) return 0 ; - if(!stralloc_0(&tocopy)) return 0 ; - break ; - default : return 0 ; - } - } - argc -= l.ind ; argv += l.ind ; - } - - if (argc < 1 && !copy) return 0 ; - if (!add && !del && !copy) return 0 ; - if (!dir) return 0 ; - if (!bundle) bundle = SS_MASTER ; - if (copy) - if (dir_scan_absopath(tocopy.s) < 0) return 0 ; - - size_t dirlen = strlen(dir) ; - size_t bundlen = strlen(bundle) ; - size_t newlen ; - char dst[dirlen + SS_DB_LEN + SS_SRC_LEN + bundlen + 1 + SS_CONTENTS_LEN + 1] ; - - if (dir_scan_absopath(dir) < 0) goto err ; - - for(;*argv;argv++) - if (!stra_add(&gargv,*argv)) retstralloc(111,"main") ; - - memcpy(dst, dir, dirlen) ; - memcpy(dst + dirlen, SS_DB, SS_DB_LEN) ; - memcpy(dst + dirlen + SS_DB_LEN, SS_SRC, SS_SRC_LEN) ; - dst[dirlen + SS_DB_LEN + SS_SRC_LEN] = '/' ; - memcpy(dst + dirlen + SS_DB_LEN + SS_SRC_LEN + 1, bundle, bundlen) ; - dst[dirlen + SS_DB_LEN + SS_SRC_LEN + 1 + bundlen] = '/' ; - newlen = dirlen + SS_DB_LEN + SS_SRC_LEN + 1 + bundlen + 1 ; - memcpy(dst + newlen, SS_CONTENTS, SS_CONTENTS_LEN) ; - dst[newlen + SS_CONTENTS_LEN] = 0 ; - - size_t filesize=file_get_size(dst) ; - - r = openreadfileclose(dst,&contents,filesize) ; - if(!r) - { - VERBO3 strerr_warnwu2sys("open: ", dst) ; - goto err ; - } - /** ensure that we have an empty line at the end of the string*/ - if (!stralloc_cats(&contents,"\n")) goto err ; - if (!stralloc_0(&contents)) goto err ; - - if (!clean_val(&in,contents.s)) - { - VERBO3 strerr_warnwu2x("clean: ",contents.s) ; - goto err ; - } - contents = stralloc_zero ; - - if (add) - { - for (unsigned int i = 0 ; i < genalloc_len(stralist,&gargv) ; i++) - { - - if (!stra_cmp(&in,gaistr(&gargv,i))) - { - if (!stra_add(&in,gaistr(&gargv,i))) - { - VERBO3 strerr_warnwu4x("add: ",gaistr(&gargv,i)," in ",dst) ; - goto err ; - } - } - } - } - - if (del) - { - for (unsigned int i = 0 ; i < genalloc_len(stralist,&gargv) ; i++) - { - if (stra_cmp(&in,gaistr(&gargv,i))) - { - if (!stra_remove(&in,gaistr(&gargv,i))) - { - VERBO3 strerr_warnwu4x("remove: ",gaistr(&gargv,i)," in ",dst) ; - goto err ; - } - } - } - } - - for (unsigned int i =0 ; i < genalloc_len(stralist,&in); i++) - { - if (!stralloc_cats(&contents,gaistr(&in,i))) goto err ; - if (!stralloc_cats(&contents,"\n")) goto err ; - } - dst[newlen] = 0 ; - - r = file_write_unsafe(dst,"contents",contents.s,contents.len) ; - if (!r) - { - VERBO3 strerr_warnwu3sys("write: ",dst,"contents") ; - goto err ; - } - - if (copy) - { - r = file_write_unsafe(tocopy.s,"contents",contents.s,contents.len) ; - if (!r) - { - VERBO3 strerr_warnwu3sys("write: ",tocopy.s,"/contents") ; - goto err ; - } - } - stralloc_free(&contents) ; - genalloc_deepfree(stralist,&in,stra_free) ; - genalloc_deepfree(stralist,&gargv,stra_free) ; - - return 1 ; - - err: - stralloc_free(&contents) ; - genalloc_deepfree(stralist,&in,stra_free) ; - genalloc_deepfree(stralist,&gargv,stra_free) ; - return 0 ; -} - -int db_cmd_master(unsigned int verbosity,char const *cmd) -{ - - int r ; - genalloc opts = GENALLOC_ZERO ; - - if (!clean_val(&opts,cmd)) - { - VERBO3 strerr_warnwu2x("clean: ",cmd) ; - genalloc_deepfree(stralist,&opts,stra_free) ; - return 0 ; - } - int newopts = 4 + genalloc_len(stralist,&opts) ; - char const *newargv[newopts] ; - unsigned int m = 0 ; - char fmt[UINT_FMT] ; - fmt[uint_fmt(fmt, verbosity)] = 0 ; - - newargv[m++] = "update_start" ; - newargv[m++] = "-v" ; - newargv[m++] = fmt ; - - for (unsigned int i = 0; i < genalloc_len(stralist,&opts); i++) - newargv[m++] = gaistr(&opts,i) ; - - newargv[m++] = 0 ; - - r = db_update_master(newopts,newargv) ; - - genalloc_deepfree(stralist,&opts,stra_free) ; - - return r ; -} - -/** action = 0 -> delete, action = 1 -> add, default delete*/ -int db_bundle_modif(genalloc *bundle,unsigned int verbosity, char const *src,unsigned int action) -{ - unsigned int i = 0 ; - size_t salen ; - stralloc update = STRALLOC_ZERO ; - char *what ; - - if (action) what = "-a" ; - else what = "-d" ; - - if (!stralloc_cats(&update,what)) return 0 ; - if (!stralloc_cats(&update," -D ")) return 0 ; - if (!stralloc_cats(&update,src)) return 0 ; - if (!stralloc_cats(&update," ")) return 0 ; - salen = update.len ; - for (;i < genalloc_len(strakeyval,bundle) ; i++) - { - update.len = salen ; - char *bname = gaikvkey(bundle,i) ; - char *svname = gaikvval(bundle,i) ; - - if (!stralloc_cats(&update,"-B ")) return 0 ; - if (!stralloc_cats(&update,bname)) return 0 ; - if (!stralloc_cats(&update," ")) return 0 ; - if (!stralloc_cats(&update,svname)) return 0 ; - if (!stralloc_0(&update)) return 0 ; - if (!db_cmd_master(verbosity,update.s)) - { - strerr_warnwu2x("update contents of bundle: ",bname) ; - return 0 ; - } - } - stralloc_free(&update) ; - - return 1 ; -} -/* -int db_bundle_contents(graph_t *g, char const *name, char const *src, unsigned int verbosity, unsigned int action) -{ - unsigned int a, b, c ; - int r = 0 ; - genalloc bundle = GENALLOC_ZERO ; - char const *string = g->string ; - for (a = 0 ; a < g->nvertex ; a++) - { - char const *bname = string + genalloc_s(vertex_graph_t,&g->vertex)[a].name ; - - if (genalloc_s(vertex_graph_t,&g->vertex)[a].type == BUNDLE) - { - - for (b = 0 ; b < genalloc_s(vertex_graph_t,&g->vertex)[a].ndeps; b++) - { - char const *depname = string + genalloc_s(vertex_graph_t,&genalloc_s(vertex_graph_t,&g->vertex)[a].dps)[b].name ; - if(obstr_equal(name,depname)) - { - for(c = 0; c < genalloc_len(strakeyval,&bundle) ; c++) - { - r = obstr_equal(depname,gaikvkey(&bundle,c)) ; - if (r) break ; - } - if (!r) - if (!strakv_add(&bundle,bname,name)) return 0 ; - } - } - } - } - if (genalloc_len(strakeyval,&bundle)) - { - if (!db_bundle_modif(&bundle,verbosity,src,action)) - goto err ; - } - genalloc_free(strakeyval,&bundle) ; - - return 1 ; - - err: - genalloc_free(strakeyval,&bundle) ; - return 0 ; -} -*/ -int db_write_contents(genalloc *ga, char const *bundle,char const *dir) -{ - int r ; - - stralloc in = STRALLOC_ZERO ; - - size_t dirlen = strlen(dir) ; - size_t bundlen = strlen(bundle) ; - - char dst[dirlen + SS_DB_LEN + SS_SRC_LEN + 1 + bundlen + 1] ; - memcpy(dst, dir, dirlen) ; - memcpy(dst + dirlen, SS_DB, SS_DB_LEN) ; - memcpy(dst + dirlen + SS_DB_LEN, SS_SRC, SS_SRC_LEN) ; - dst[dirlen + SS_DB_LEN + SS_SRC_LEN] = '/' ; - memcpy(dst + dirlen + SS_DB_LEN + SS_SRC_LEN + 1, bundle, bundlen) ; - dst[dirlen + SS_DB_LEN + SS_SRC_LEN + 1 + bundlen] = 0 ; - - for (unsigned int i = 0 ; i < genalloc_len(stralist,ga); i++) - { - if (!stralloc_cats(&in,gaistr(ga,i))) goto err ; - if (!stralloc_cats(&in,"\n")) goto err ; - } - - r = file_write_unsafe(dst,SS_CONTENTS,in.s,in.len) ; - if (!r) - { - VERBO3 strerr_warnwu3sys("write: ",dst,"contents") ; - goto err ; - } - - stralloc_free(&in) ; - - return 1 ; - - err: - stralloc_free(&in) ; - return 0 ; -} -/* -int db_write_master(ssexec_t *info, genalloc *ga, char const *dir,int both) -{ - int r ; - - char ownerstr[256] ; - size_t ownerlen = uid_fmt(ownerstr,info->owner) ; - ownerstr[ownerlen] = 0 ; - - stralloc in = STRALLOC_ZERO ; - stralloc inres = STRALLOC_ZERO ; - ss_resolve_t res = RESOLVE_ZERO ; - - size_t dirlen = strlen(dir) ; - - char runat[info->livetree.len + 1 + info->treename.len + SS_SVDIRS_LEN + SS_MASTER_LEN + 1] ; - memcpy(runat,info->livetree.s,info->livetree.len) ; - runat[info->livetree.len] = '/' ; - memcpy(runat + info->livetree.len + 1,info->treename.s,info->treename.len) ; - memcpy(runat + info->livetree.len + 1 + info->treename.len, SS_SVDIRS,SS_SVDIRS_LEN) ; - memcpy(runat + info->livetree.len + 1 + info->treename.len + SS_SVDIRS_LEN, SS_MASTER, SS_MASTER_LEN) ; - runat[info->livetree.len + 1 + info->treename.len + SS_SVDIRS_LEN + SS_MASTER_LEN] = 0 ; - - char dst[dirlen + SS_DB_LEN + SS_SRC_LEN + SS_MASTER_LEN + 1] ; - memcpy(dst, dir, dirlen) ; - memcpy(dst + dirlen, SS_DB, SS_DB_LEN) ; - memcpy(dst + dirlen + SS_DB_LEN, SS_SRC, SS_SRC_LEN) ; - memcpy(dst + dirlen + SS_DB_LEN + SS_SRC_LEN, SS_MASTER, SS_MASTER_LEN) ; - dst[dirlen + SS_DB_LEN + SS_SRC_LEN + SS_MASTER_LEN] = 0 ; - - size_t livelen = info->live.len - 1 ; - char resolve[livelen + SS_STATE_LEN + 1 + ownerlen + 1 + info->treename.len + 1] ; - memcpy(resolve,info->live.s,livelen) ; - memcpy(resolve + livelen, SS_STATE,SS_STATE_LEN) ; - resolve[livelen+ SS_STATE_LEN] = '/' ; - memcpy(resolve + livelen + SS_STATE_LEN + 1,ownerstr,ownerlen) ; - resolve[livelen + SS_STATE_LEN + 1 + ownerlen] = '/' ; - memcpy(resolve + livelen + SS_STATE_LEN + 1 + ownerlen + 1,info->treename.s,info->treename.len) ; - resolve[livelen + SS_STATE_LEN + 1 + ownerlen + 1 + info->treename.len] = 0 ; - - for (unsigned int i = 0 ; i < genalloc_len(stralist,ga); i++) - { - - if (!stralloc_cats(&in,gaistr(ga,i))) goto err ; - if (!stralloc_cats(&in,"\n")) goto err ; - - if (!stralloc_cats(&inres,gaistr(ga,i))) goto err ; - if (!stralloc_cats(&inres," ")) goto err ; - } - if (genalloc_len(stralist,ga)) inres.len--; - if (!stralloc_0(&inres)) goto err ; - - r = file_write_unsafe(dst,SS_CONTENTS,in.s,in.len) ; - if (!r) - { - VERBO3 strerr_warnwu3sys("write: ",dst,"contents") ; - goto err ; - } - - ss_resolve_init(&res) ; - res.name = ss_resolve_add_string(&res,SS_MASTER+1) ; - res.description = ss_resolve_add_string(&res,"inner bundle - do not use it") ; - res.treename = ss_resolve_add_string(&res,info->treename.s) ; - res.tree = ss_resolve_add_string(&res,info->tree.s) ; - res.live = ss_resolve_add_string(&res,info->live.s) ; - res.type = BUNDLE ; - res.deps = ss_resolve_add_string(&res,inres.s) ; - res.ndeps = genalloc_len(stralist,ga) ; - res.runat = ss_resolve_add_string(&res,runat) ; - res.resolve = ss_resolve_add_string(&res,resolve) ; - res.disen = 1 ; - res.init = 0 ; - res.unsupervise = 0 ; - res.reload = 0 ; - - if (!ss_resolve_write(&res,dir,SS_MASTER+1,both)) goto err ; - - stralloc_free(&in) ; - stralloc_free(&inres) ; - ss_resolve_free(&res) ; - - return 1 ; - - err: - ss_resolve_free(&res) ; - stralloc_free(&in) ; - stralloc_free(&inres) ; - return 0 ; -} -*/ diff --git a/src/lib66/db_get_permissions.c b/src/lib66/db_get_permissions.c deleted file mode 100644 index 44a843dd..00000000 --- a/src/lib66/db_get_permissions.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * db_get_permissions.c - * - * Copyright (c) 2018-2019 Eric Vidal <eric@obarun.org> - * - * All rights reserved. - * - * This file is part of Obarun. It is subject to the license terms in - * the LICENSE file found in the top-level directory of this - * distribution. - * This file may not be copied, modified, propagated, or distributed - * except according to the terms contained in the LICENSE file./ - */ - -#include <66/utils.h> - -#include <sys/types.h> -#include <sys/stat.h> -#include <errno.h> - -#include <oblibs/error2.h> -#include <oblibs/directory.h> -#include <oblibs/types.h> -#include <oblibs/stralist.h> -#include <oblibs/files.h> - -#include <skalibs/stralloc.h> -#include <skalibs/genalloc.h> -#include <skalibs/types.h> - -#include <66/constants.h> - - -int db_get_permissions(stralloc *uid, char const *tree) -{ - genalloc list = GENALLOC_ZERO ; - - size_t treelen = strlen(tree) ; - char tmp[treelen + SS_RULES_LEN + 1] ; - memcpy(tmp,tree,treelen) ; - memcpy(tmp + treelen, SS_RULES, SS_RULES_LEN) ; - tmp[treelen + SS_RULES_LEN] = 0 ; - - if (!dir_get(&list,tmp,"",S_IFREG)) return 0 ; - - for (unsigned int i = 0; i < genalloc_len(stralist,&list); i++) - { - if (!stralloc_cats(uid,gaistr(&list,i))) retstralloc(0,"set_permissions_db") ; - if (!stralloc_cats(uid,",")) retstralloc(0,"set_permissions_db") ; - } - uid->len-- ;// remove the last ',' - if (!stralloc_0(uid)) retstralloc(0,"set_permissions_db") ; - - genalloc_deepfree(stralist,&list,stra_free) ; - - return 1 ; -} diff --git a/src/lib66/deps-lib/66 b/src/lib66/deps-lib/66 index 608fa793..f21202a0 100644 --- a/src/lib66/deps-lib/66 +++ b/src/lib66/deps-lib/66 @@ -1,10 +1,8 @@ backup_cmd_switcher.o backup_make_new.o backup_realpath_sym.o -db_cmd_master.o db_compile.o db_find_compiled_state.o -db_get_permissions.o db_ok.o db_switch_to.o db_update.o diff --git a/src/lib66/parser_enabled.c b/src/lib66/parser_enabled.c index 4fb61300..efc5ab9a 100644 --- a/src/lib66/parser_enabled.c +++ b/src/lib66/parser_enabled.c @@ -71,26 +71,25 @@ int parse_add_service(stralloc *parsed_list,sv_alltype *sv_before,char const *se { stralloc conf = STRALLOC_ZERO ; size_t svlen = strlen(service) ; -// char svsrc[svlen + 1] ; -// if (!dirname(svsrc,service)) return 0 ; -// size_t srclen = strlen(svsrc) ; // keep source of the frontend file sv_before->src = keep.len ; -// if (!stralloc_catb(&keep,svsrc,srclen + 1)) return 0 ; - if (!stralloc_catb(&keep,service,svlen + 1)) return 0 ; + if (!stralloc_catb(&keep,service,svlen + 1)) goto err ; // keep source of the configuration file if (sv_before->opts[2]) { - if (!env_resolve_conf(&conf,owner)) return 0 ; + if (!env_resolve_conf(&conf,owner)) goto err ; sv_before->srconf = keep.len ; - if (!stralloc_catb(&keep,conf.s,conf.len + 1)) return 0 ; + if (!stralloc_catb(&keep,conf.s,conf.len + 1)) goto err ; } // keep service on current list - if (!stralloc_catb(parsed_list,service,svlen + 1)) return 0 ; - if (!genalloc_append(sv_alltype,&gasv,sv_before)) return 0 ; + if (!stralloc_catb(parsed_list,service,svlen + 1)) goto err ; + if (!genalloc_append(sv_alltype,&gasv,sv_before)) goto err ; (*nbsv)++ ; stralloc_free(&conf) ; return 1 ; + err: + stralloc_free(&conf) ; + return 0 ; } int parse_service_deps(ssexec_t *info,stralloc *parsed_list, sv_alltype *sv_before, char const *sv,unsigned int *nbsv,stralloc *sasv,uint8_t force) @@ -100,7 +99,6 @@ int parse_service_deps(ssexec_t *info,stralloc *parsed_list, sv_alltype *sv_befo stralloc newsv = STRALLOC_ZERO ; if (sv_before->cname.nga) { - size_t id = sv_before->cname.idga, nid = sv_before->cname.nga ; for (;nid; id += strlen(deps.s + id) + 1, nid--) { @@ -109,45 +107,21 @@ int parse_service_deps(ssexec_t *info,stralloc *parsed_list, sv_alltype *sv_befo { VERBO3 strerr_warni4x("Service : ",sv, " depends on : ",deps.s+id) ; }else VERBO3 strerr_warni5x("Bundle : ",sv, " contents : ",deps.s+id," as service") ; - dname = deps.s+id ; + dname = deps.s + id ; if (!ss_resolve_src_path(&newsv,dname,info)) { VERBO3 strerr_warnwu2x("resolve source path of: ",dname) ; - stralloc_free(&newsv) ; - return 0 ; - } - if (!parse_service_before(info,parsed_list,newsv.s,nbsv,sasv,force,&exist)) - { - stralloc_free(&newsv) ; - return 0 ; + goto err ; } + if (!parse_service_before(info,parsed_list,newsv.s,nbsv,sasv,force,&exist)) goto err ; } - /* - for (int i = 0;i < sv_before->cname.nga;i++) - { - newsv.len = 0 ; - if (sv_before->cname.itype != BUNDLE) - { - VERBO3 strerr_warni4x("Service : ",sv, " depends on : ",deps.s+(genalloc_s(unsigned int,&gadeps)[sv_before->cname.idga+i])) ; - }else VERBO3 strerr_warni5x("Bundle : ",sv, " contents : ",deps.s+(genalloc_s(unsigned int,&gadeps)[sv_before->cname.idga+i])," as service") ; - - dname = deps.s+(genalloc_s(unsigned int,&gadeps)[sv_before->cname.idga+i]) ; - if (!ss_resolve_src_path(&newsv,dname,info)) - { - VERBO3 strerr_warnwu2x("resolve source path of: ",dname) ; - stralloc_free(&newsv) ; - return 0 ; - } - if (!parse_service_before(info,parsed_list,newsv.s,nbsv,sasv,force,&exist)) - { - stralloc_free(&newsv) ; - return 0 ; - } - }*/ } else VERBO3 strerr_warni2x(sv,": haven't dependencies") ; stralloc_free(&newsv) ; return 1 ; + err: + stralloc_free(&newsv) ; + return 0 ; } int parse_service_before(ssexec_t *info,stralloc *parsed_list, char const *sv,unsigned int *nbsv, stralloc *sasv,uint8_t force,uint8_t *exist) diff --git a/src/lib66/state.c b/src/lib66/state.c index ebef89d9..5de2ddca 100644 --- a/src/lib66/state.c +++ b/src/lib66/state.c @@ -83,12 +83,7 @@ int ss_state_write(ss_state_t *sta, char const *dst, char const *name) ss_state_pack(pack,sta) ; if (!openwritenclose_unsafe(tmp,pack,SS_STATE_SIZE)) return 0 ; - - /*printf("sta.reload:write:%i\n",sta->reload) ; - printf("sta.init::%i\n",sta->init) ; - printf("sta.unsupervise::%i\n",sta->unsupervise) ; - printf("sta.state::%i\n",sta->state) ; - printf("sta.pid:write:%i\n",sta->pid) ;*/ + return 1 ; } @@ -106,11 +101,7 @@ int ss_state_read(ss_state_t *sta, char const *src, char const *name) if (openreadnclose(tmp, pack, SS_STATE_SIZE) < SS_STATE_SIZE) return 0 ; ss_state_unpack(pack, sta) ; - /* printf("sta.reload:read:%i\n",sta->reload) ; - printf("sta.init::%i\n",sta->init) ; - printf("sta.unsupervise::%i\n",sta->unsupervise) ; - printf("sta.state::%i\n",sta->state) ; - printf("sta.pid:read:%i\n",sta->pid) ;*/ + return 1 ; } diff --git a/src/lib66/svc_init.c b/src/lib66/svc_init.c index 3d5d7779..31a7447c 100644 --- a/src/lib66/svc_init.c +++ b/src/lib66/svc_init.c @@ -19,10 +19,9 @@ //#include <stdio.h> #include <oblibs/error2.h> -#include <oblibs/stralist.h> #include <oblibs/string.h> -#include <oblibs/directory.h> #include <oblibs/types.h> +#include <oblibs/sastr.h> #include <skalibs/genalloc.h> #include <skalibs/types.h> @@ -41,13 +40,13 @@ int svc_init(ssexec_t *info,char const *src, genalloc *ga) { - + size_t namelen, srclen, svscanlen, tmplen, pos, i ; ssize_t logname ; gid_t gid = getgid() ; uint16_t id ; ftrigr_t fifo = FTRIGR_ZERO ; - genalloc gadown = GENALLOC_ZERO ; + stralloc sadown = STRALLOC_ZERO ; genalloc ids = GENALLOC_ZERO ; // uint16_t ss_state_t sta = STATE_ZERO ; @@ -60,7 +59,7 @@ int svc_init(ssexec_t *info,char const *src, genalloc *ga) if (!ss_resolve_create_live(info)) { VERBO1 strerr_warnwu1sys("create live state") ; goto err ; } - for (unsigned int i=0 ; i < genalloc_len(ss_resolve_t,ga); i++) + for (i = 0 ; i < genalloc_len(ss_resolve_t,ga); i++) { logname = 0 ; char *string = genalloc_s(ss_resolve_t,ga)[i].sa.s ; @@ -80,15 +79,14 @@ int svc_init(ssexec_t *info,char const *src, genalloc *ga) logname = get_rstrlen_until(name,SS_LOG_SUFFIX) ; if (logname > 0) name = string + genalloc_s(ss_resolve_t,ga)[i].logassoc ; - size_t namelen = strlen(name) ; - size_t srclen = strlen(src) ; + namelen = strlen(name) ; + srclen = strlen(src) ; char svsrc[srclen + 1 + namelen + 1] ; memcpy(svsrc,src,srclen) ; svsrc[srclen] = '/' ; memcpy(svsrc + srclen + 1,name,namelen) ; svsrc[srclen + 1 + namelen] = 0 ; - size_t svscanlen ; if (logname > 0) svscanlen = strlen(string + genalloc_s(ss_resolve_t,ga)[i].runat) - SS_LOG_SUFFIX_LEN ; else svscanlen = strlen(string + genalloc_s(ss_resolve_t,ga)[i].runat) ; char svscan[svscanlen + 6 + 1] ; @@ -116,7 +114,7 @@ int svc_init(ssexec_t *info,char const *src, genalloc *ga) * check it and create again if doesn't exist */ if (!scan_mode(svscan,S_IFDIR)) { - size_t tmplen = strlen(svsrc) ; + tmplen = strlen(svsrc) ; char tmp[tmplen + 4 + 1] ; memcpy(tmp,svsrc,tmplen) ; memcpy(tmp + tmplen,"/log",4) ; @@ -133,7 +131,7 @@ int svc_init(ssexec_t *info,char const *src, genalloc *ga) if (!genalloc_s(ss_resolve_t,ga)[i].down) { - if (!stra_add(&gadown,svscan)) + if (!sastr_add_string(&sadown,svscan)) { VERBO3 strerr_warnwu3x("add: ",svscan," to genalloc") ; goto err ; @@ -177,17 +175,17 @@ int svc_init(ssexec_t *info,char const *src, genalloc *ga) if (ftrigr_wait_and_g(&fifo, genalloc_s(uint16_t, &ids), genalloc_len(uint16_t, &ids), &deadline) < 0) goto err ; - for (unsigned int i = 0 ; i < genalloc_len(stralist,&gadown) ; i++) + for (pos = 0 ; pos < sadown.len; pos += strlen(sadown.s + pos) + 1) { - VERBO3 strerr_warnt2x("Delete down file at: ",gaistr(&gadown,i)) ; - if (unlink(gaistr(&gadown,i)) < 0 && errno != ENOENT) goto err ; + VERBO3 strerr_warnt2x("Delete down file at: ",sadown.s + pos) ; + if (unlink(sadown.s + pos) < 0 && errno != ENOENT) goto err ; } - for (unsigned int i = 0 ; i < genalloc_len(ss_resolve_t,ga) ; i++) + for (pos = 0 ; pos < genalloc_len(ss_resolve_t,ga) ; pos++) { - char const *string = genalloc_s(ss_resolve_t,ga)[i].sa.s ; - char const *name = string + genalloc_s(ss_resolve_t,ga)[i].name ; - char const *state = string + genalloc_s(ss_resolve_t,ga)[i].state ; + char const *string = genalloc_s(ss_resolve_t,ga)[pos].sa.s ; + char const *name = string + genalloc_s(ss_resolve_t,ga)[pos].name ; + char const *state = string + genalloc_s(ss_resolve_t,ga)[pos].state ; VERBO2 strerr_warni2x("Write state file of: ",name) ; if (!ss_state_write(&sta,state,name)) @@ -199,14 +197,14 @@ int svc_init(ssexec_t *info,char const *src, genalloc *ga) } } ftrigr_end(&fifo) ; - genalloc_deepfree(stralist,&gadown,stra_free) ; + stralloc_free(&sadown) ; genalloc_free(uint16_t, &ids) ; return 1 ; err: ftrigr_end(&fifo) ; genalloc_free(uint16_t, &ids) ; - genalloc_deepfree(stralist,&gadown,stra_free) ; + stralloc_free(&sadown) ; ftrigr_end(&fifo) ; return 0 ; -- GitLab