From 16a011c5a6e1d023e96e02dbd7fece73eecc998a Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Thu, 14 Mar 2019 21:56:57 +1100 Subject: [PATCH] follow ss_resolve func change --- src/lib66/ssexec_dbctl.c | 28 ++++++++++++++-------------- src/lib66/ssexec_disable.c | 7 ++++--- src/lib66/ssexec_enable.c | 21 ++++++++++++--------- src/lib66/ssexec_stop.c | 23 ++++++++--------------- src/lib66/ssexec_svctl.c | 7 ++++--- 5 files changed, 42 insertions(+), 44 deletions(-) diff --git a/src/lib66/ssexec_dbctl.c b/src/lib66/ssexec_dbctl.c index 2a54ae0d..727d1dce 100644 --- a/src/lib66/ssexec_dbctl.c +++ b/src/lib66/ssexec_dbctl.c @@ -98,7 +98,7 @@ int ssexec_dbctl(int argc, char const *const *argv,char const *const *envp,ssexe genalloc resdeps = GENALLOC_ZERO ; //ss_resolve_t genalloc toreload = GENALLOC_ZERO ;//ss_resolve_t stralloc tmp = STRALLOC_ZERO ; - stralloc src = STRALLOC_ZERO ; + stralloc sares = STRALLOC_ZERO ; s6_svstatus_t status = S6_SVSTATUS_ZERO ; @@ -132,15 +132,15 @@ int ssexec_dbctl(int argc, char const *const *argv,char const *const *envp,ssexe if (down) signal = "-d" ; else signal = "-u" ; - if (!ss_resolve_pointo(&src,info,SS_NOTYPE,SS_RESOLVE_LIVE)) strerr_diefu1sys(111,"set revolve pointer to live") ; + if (!ss_resolve_pointo(&sares,info,SS_NOTYPE,SS_RESOLVE_LIVE)) strerr_diefu1sys(111,"set revolve pointer to live") ; if (argc < 1) { unsigned int i = 0 ; genalloc tmp = GENALLOC_ZERO ; ss_resolve_t res = RESOLVE_ZERO ; - if (!ss_resolve_check(info,mainsv,SS_RESOLVE_LIVE)) strerr_dief1sys(111,"inner bundle doesn't exit -- please make a bug report") ; - if (!ss_resolve_read(&res,src.s,mainsv)) strerr_diefu1sys(111,"read resolve file of inner bundle") ; + if (!ss_resolve_check(sares.s,mainsv)) strerr_dief1sys(111,"inner bundle doesn't exit -- please make a bug report") ; + if (!ss_resolve_read(&res,sares.s,mainsv)) strerr_diefu1sys(111,"read resolve file of inner bundle") ; if (res.ndeps) { if (!clean_val(&tmp,res.sa.s + res.deps)) strerr_dief1sys(111,"retrieve dependencies of inner bundle") ; @@ -148,8 +148,8 @@ int ssexec_dbctl(int argc, char const *const *argv,char const *const *envp,ssexe { ss_resolve_t dres = RESOLVE_ZERO ; char *name = gaistr(&tmp,i) ; - if (!ss_resolve_check(info,name,SS_RESOLVE_LIVE)) strerr_dief2sys(110,"unknow service: ",name) ; - if (!ss_resolve_read(&dres,src.s,name)) strerr_diefu2sys(111,"read resolve file of: ",name) ; + if (!ss_resolve_check(sares.s,name)) strerr_dief2sys(110,"unknow service: ",name) ; + if (!ss_resolve_read(&dres,sares.s,name)) strerr_diefu2sys(111,"read resolve file of: ",name) ; if (!ss_resolve_append(&resdeps,&dres)) strerr_diefu1sys(111,"append resolve") ; if (reload) if (!ss_resolve_append(&toreload,&dres)) strerr_diefu1sys(111,"append resolve") ; ss_resolve_free(&dres) ; @@ -171,21 +171,21 @@ int ssexec_dbctl(int argc, char const *const *argv,char const *const *envp,ssexe { ss_resolve_t res = RESOLVE_ZERO ; char const *name = *argv ; - if (!ss_resolve_check(info,name,SS_RESOLVE_LIVE)) strerr_dief2sys(110,"unknow service: ",name) ; - if (!ss_resolve_read(&res,src.s,name)) strerr_diefu2sys(111,"read resolve file of: ",name) ; + if (!ss_resolve_check(sares.s,name)) strerr_dief2sys(110,"unknow service: ",name) ; + if (!ss_resolve_read(&res,sares.s,name)) strerr_diefu2sys(111,"read resolve file of: ",name) ; if (res.type == CLASSIC) strerr_dief2x(111,name," has type classic") ; if (up) { - if (!ss_resolve_add_deps(&resdeps,&res,info)) strerr_diefu2sys(111,"resolve dependencies of: ",name) ; + if (!ss_resolve_add_deps(&resdeps,&res,sares.s)) strerr_diefu2sys(111,"resolve dependencies of: ",name) ; } else - { - if (!ss_resolve_add_rdeps(&resdeps,&res,info)) strerr_diefu2sys(111,"resolve recursive dependencies of: ",name) ; + { + if (!ss_resolve_add_rdeps(&resdeps,&res,sares.s)) strerr_diefu2sys(111,"resolve recursive dependencies of: ",name) ; } if (reload) { - if (!ss_resolve_add_rdeps(&toreload,&res,info)) strerr_diefu2sys(111,"resolve recursive dependencies of: ",name) ; + if (!ss_resolve_add_rdeps(&toreload,&res,sares.s)) strerr_diefu2sys(111,"resolve recursive dependencies of: ",name) ; } ss_resolve_free(&res) ; } @@ -258,7 +258,7 @@ int ssexec_dbctl(int argc, char const *const *argv,char const *const *envp,ssexe ss_resolve_setflag(pres,SS_FLAGS_INIT,SS_FLAGS_FALSE) ; ss_resolve_setflag(pres,SS_FLAGS_UNSUPERVISE,SS_FLAGS_FALSE) ; VERBO2 strerr_warni2x("Write resolve file of: ",name) ; - if (!ss_resolve_write(pres,src.s,name,writein)) + if (!ss_resolve_write(pres,sares.s,name,writein)) { VERBO1 strerr_warnwu2sys("write resolve file of: ",name) ; ret = 111 ; @@ -268,7 +268,7 @@ int ssexec_dbctl(int argc, char const *const *argv,char const *const *envp,ssexe freed: stralloc_free(&tmp) ; - stralloc_free(&src) ; + stralloc_free(&sares) ; genalloc_deepfree(ss_resolve_t,&resdeps,ss_resolve_free) ; genalloc_deepfree(ss_resolve_t,&toreload,ss_resolve_free) ; diff --git a/src/lib66/ssexec_disable.c b/src/lib66/ssexec_disable.c index 50dc51f1..accddf78 100644 --- a/src/lib66/ssexec_disable.c +++ b/src/lib66/ssexec_disable.c @@ -73,18 +73,19 @@ int svc_remove(genalloc *tostop,ss_resolve_t *res, char const *src,ssexec_t *inf if (!stralloc_cats(&dst,"/")) goto err ; newlen = dst.len ; - if (!ss_resolve_add_rdeps(&rdeps,&cp,info)) + if (!ss_resolve_add_rdeps(&rdeps,&cp,src)) { VERBO1 strerr_warnwu2sys("resolve recursive dependencies of: ",name) ; goto err ; } ss_resolve_free(&cp) ; - if (!ss_resolve_add_logger(&rdeps,info)) + if (!ss_resolve_add_logger(&rdeps,src)) { VERBO1 strerr_warnwu1sys("resolve logger") ; goto err ; } + genalloc_reverse(ss_resolve_t,&rdeps) ; for (;i < genalloc_len(ss_resolve_t,&rdeps) ; i++) { ss_resolve_t_ref pres = &genalloc_s(ss_resolve_t,&rdeps)[i] ; @@ -180,7 +181,7 @@ int ssexec_disable(int argc, char const *const *argv,char const *const *envp,sse cleanup(workdir.s) ; strerr_dief1x(110,"logger detected - disabling is not allowed") ; } - if (!ss_resolve_check(info,name,SS_RESOLVE_LIVE)) + if (!ss_resolve_check(workdir.s,name)) { cleanup(workdir.s) ; strerr_dief2x(110,name," is not enabled") ; diff --git a/src/lib66/ssexec_enable.c b/src/lib66/ssexec_enable.c index 21d0a6e7..2967ff0a 100644 --- a/src/lib66/ssexec_enable.c +++ b/src/lib66/ssexec_enable.c @@ -125,14 +125,13 @@ int ssexec_enable(int argc, char const *const *argv,char const *const *envp,ssex } if (argc < 1) exitusage(usage_enable) ; - - - if (!ss_resolve_pointo(&sares,info,SS_NOTYPE,SS_RESOLVE_LIVE)) strerr_diefu1sys(111,"set revolve pointer to source") ; + + if (!ss_resolve_pointo(&sares,info,SS_NOTYPE,SS_RESOLVE_SRC)) strerr_diefu1sys(111,"set revolve pointer to source") ; for(;*argv;argv++) { check_identifier(*argv) ; - if (ss_resolve_check(info,*argv,SS_RESOLVE_LIVE)) + if (ss_resolve_check(sares.s,*argv)) { if (!ss_resolve_read(&res,sares.s,*argv)) strerr_diefu2sys(111,"read resolve file of: ",*argv) ; if (res.disen && !FORCE) @@ -142,17 +141,21 @@ int ssexec_enable(int argc, char const *const *argv,char const *const *envp,ssex } } unsigned int found = 0 ; - if (!ss_resolve_src(&gasrc,&sasrc,*argv,src,&found)) + r = ss_resolve_src(&gasrc,&sasrc,*argv,src,&found) ; + if (r < 0) strerr_diefu2sys(111,"parse source directory: ",src) ; + if (!r) { src = SS_SERVICE_SYSDIR ; - if (!ss_resolve_src(&gasrc,&sasrc,*argv,src,&found)) + r = ss_resolve_src(&gasrc,&sasrc,*argv,src,&found) ; + if (r < 0) strerr_diefu2sys(111,"parse source directory: ",src) ; + if (!r) { src = SS_SERVICE_PACKDIR ; - if (!ss_resolve_src(&gasrc,&sasrc,*argv,src,&found)) - strerr_dief2sys(110,"unknow service: ",*argv) ; + r = ss_resolve_src(&gasrc,&sasrc,*argv,src,&found) ; + if (r < 0) strerr_diefu2sys(111,"parse source directory: ",src) ; + if (!r) strerr_dief2sys(110,"unknow service: ",*argv) ; } } - } ss_resolve_free(&res) ; stralloc_free(&sares) ; diff --git a/src/lib66/ssexec_stop.c b/src/lib66/ssexec_stop.c index 5994958d..68408cd5 100644 --- a/src/lib66/ssexec_stop.c +++ b/src/lib66/ssexec_stop.c @@ -70,11 +70,7 @@ int svc_down(ssexec_t *info,genalloc *ga,char const *const *envp) } else { - if (!svc_send(info,ga,SIG,envp)) - { - VERBO1 strerr_warnwu1x("stop services") ; - goto err ; - } + if (!svc_send(info,ga,SIG,envp))goto err ; } return 1 ; @@ -182,11 +178,7 @@ int rc_down(ssexec_t *info,genalloc *ga,char const *const *envp) } else { - if (!rc_send(info,ga,"-d",envp)) - { - VERBO1 strerr_warnwu1x("stop services") ; - goto err ; - } + if (!rc_send(info,ga,"-d",envp)) goto err ; } stralloc_free(&sares) ; @@ -243,14 +235,15 @@ int ssexec_stop(int argc, char const *const *argv,char const *const *envp,ssexec { char const *name = *argv ; ss_resolve_t res = RESOLVE_ZERO ; - if (!ss_resolve_check(info,name,SS_RESOLVE_LIVE)) strerr_dief2x(110,name," is not enabled") ; + if (!ss_resolve_check(sares.s,name)) strerr_dief2x(110,name," is not enabled") ; if (!ss_resolve_read(&res,sares.s,name)) strerr_diefu2sys(111,"read resolve file of: ",name) ; - if (!ss_resolve_add_rdeps(&gagen,&res,info)) strerr_diefu2sys(111,"resolve recursive dependencies of: ",name) ; + if (!ss_resolve_add_rdeps(&gagen,&res,sares.s)) strerr_diefu2sys(111,"resolve recursive dependencies of: ",name) ; + if (!ss_resolve_add_logger(&gagen,sares.s)) strerr_diefu1sys(111,"resolve logger") ; ss_resolve_free(&res) ; } stralloc_free(&sares) ; - + genalloc_reverse(ss_resolve_t,&gagen) ; for(unsigned int i = 0 ; i < genalloc_len(ss_resolve_t,&gagen) ; i++) { pres = &genalloc_s(ss_resolve_t,&gagen)[i] ; @@ -313,7 +306,7 @@ int ssexec_stop(int argc, char const *const *argv,char const *const *envp,ssexec { VERBO2 strerr_warni1x("stop atomic services ...") ; if (!rc_down(info,&nrc,envp)) - strerr_diefu1x(111,"update atomic services") ; + strerr_diefu1x(111,"stop atomic services") ; VERBO2 strerr_warni3x("switch atomic services of: ",info->treename.s," to source") ; if (!db_switch_to(info,envp,SS_SWSRC)) strerr_diefu5x(111,"switch",info->livetree.s,"/",info->treename.s," to source") ; @@ -326,7 +319,7 @@ int ssexec_stop(int argc, char const *const *argv,char const *const *envp,ssexec { VERBO2 strerr_warni1x("stop classic services ...") ; if (!svc_down(info,&nclassic,envp)) - strerr_diefu1x(111,"update classic services") ; + strerr_diefu1x(111,"stop classic services") ; VERBO2 strerr_warni3x("switch classic services of: ",info->treename.s," to source") ; if (!svc_switch_to(info,SS_SWSRC)) strerr_diefu3x(111,"switch classic service of: ",info->treename.s," to source") ; diff --git a/src/lib66/ssexec_svctl.c b/src/lib66/ssexec_svctl.c index 4453339c..420fc833 100644 --- a/src/lib66/ssexec_svctl.c +++ b/src/lib66/ssexec_svctl.c @@ -353,14 +353,14 @@ int ssexec_svctl(int argc, char const *const *argv,char const *const *envp,ssexe ss_resolve_t res = RESOLVE_ZERO ; char const *name = *argv ; - if (!ss_resolve_check(info,name,SS_RESOLVE_LIVE)) strerr_dief2sys(111,"unknow service: ",name) ; + if (!ss_resolve_check(sares.s,name)) strerr_dief2sys(111,"unknow service or not initialized: ",name) ; if (!ss_resolve_read(&res,sares.s,name)) strerr_diefu2sys(111,"read resolve file of: ",name) ; if (res.type >= BUNDLE) strerr_dief3x(111,name," has type ",get_keybyid(res.type)) ; if (SIGNAL <= SIGRR) { - if (!ss_resolve_add_deps(&resdeps,&res,info)) strerr_diefu2sys(111,"resolve dependencies of: ",name) ; + if (!ss_resolve_add_deps(&resdeps,&res,sares.s)) strerr_diefu2sys(111,"resolve dependencies of: ",name) ; } - else if (!ss_resolve_add_rdeps(&resdeps,&res,info)) strerr_diefu2sys(111,"resolve dependencies of: ",name) ; + else if (!ss_resolve_add_rdeps(&resdeps,&res,sares.s)) strerr_diefu2sys(111,"resolve dependencies of: ",name) ; ss_resolve_free(&res) ; } genalloc_reverse(ss_resolve_t,&resdeps) ; @@ -373,6 +373,7 @@ int ssexec_svctl(int argc, char const *const *argv,char const *const *envp,ssexe size_t svoklen = strlen(svok) ; char file[svoklen + 16 + 1] ; memcpy(file,svok,svoklen) ; + if (!s6_svc_ok(svok)) strerr_dief2x(111,string + sv_signal.res.name," : is not initiated") ; if (!s6_svstatus_read(svok,&status)) strerr_diefu2sys(111,"read status of: ",svok) ; isup = status.pid && !status.flagfinishing ; -- GitLab