diff --git a/package/deps.mak b/package/deps.mak index 4208d78389b556aced74772688d12fbc1a5f717d..4cce9e5fbd16a2892119fd63014c6277128937e4 100644 --- a/package/deps.mak +++ b/package/deps.mak @@ -36,6 +36,7 @@ src/66/66-start.o src/66/66-start.lo: src/66/66-start.c src/include/66/ssexec.h src/66/66-stop.o src/66/66-stop.lo: src/66/66-stop.c src/include/66/ssexec.h src/66/66-svctl.o src/66/66-svctl.lo: src/66/66-svctl.c src/include/66/ssexec.h src/66/66-tree.o src/66/66-tree.lo: src/66/66-tree.c src/include/66/config.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/resolve.h src/include/66/state.h src/include/66/tree.h src/include/66/utils.h +src/66/66-tree_backup.o src/66/66-tree_backup.lo: src/66/66-tree_backup.c src/include/66/config.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/resolve.h src/include/66/state.h src/include/66/tree.h src/include/66/utils.h src/66/66-update.o src/66/66-update.lo: src/66/66-update.c src/include/66/backup.h src/include/66/constants.h src/include/66/db.h src/include/66/parser.h src/include/66/resolve.h src/include/66/ssexec.h src/include/66/svc.h src/include/66/tree.h src/include/66/utils.h src/extra-tools/66-echo.o src/extra-tools/66-echo.lo: src/extra-tools/66-echo.c src/extra-tools/66-nuke.o src/extra-tools/66-nuke.lo: src/extra-tools/66-nuke.c @@ -88,8 +89,10 @@ src/lib66/svc_unsupervise.o src/lib66/svc_unsupervise.lo: src/lib66/svc_unsuperv src/lib66/tree_cmd_state.o src/lib66/tree_cmd_state.lo: src/lib66/tree_cmd_state.c src/include/66/constants.h src/include/66/utils.h src/lib66/tree_copy.o src/lib66/tree_copy.lo: src/lib66/tree_copy.c src/include/66/constants.h src/include/66/tree.h src/lib66/tree_copy_tmp.o src/lib66/tree_copy_tmp.lo: src/lib66/tree_copy_tmp.c src/include/66/constants.h src/include/66/enum.h src/include/66/ssexec.h src/include/66/tree.h src/include/66/utils.h +src/lib66/tree_create_from_seed.o src/lib66/tree_create_from_seed.lo: src/lib66/tree_create_from_seed.c src/include/66/config.h src/include/66/enum.h src/include/66/tree.h src/include/66/utils.h src/lib66/tree_find_current.o src/lib66/tree_find_current.lo: src/lib66/tree_find_current.c src/include/66/constants.h src/include/66/utils.h src/lib66/tree_get_permissions.o src/lib66/tree_get_permissions.lo: src/lib66/tree_get_permissions.c src/include/66/constants.h src/include/66/utils.h +src/lib66/tree_isvalid.o src/lib66/tree_isvalid.lo: src/lib66/tree_isvalid.c src/include/66/constants.h src/include/66/ssexec.h src/include/66/tree.h src/lib66/tree_sethome.o src/lib66/tree_sethome.lo: src/lib66/tree_sethome.c src/include/66/constants.h src/include/66/tree.h src/lib66/tree_setname.o src/lib66/tree_setname.lo: src/lib66/tree_setname.c src/include/66/tree.h src/lib66/tree_switch_current.o src/lib66/tree_switch_current.lo: src/lib66/tree_switch_current.c src/include/66/config.h src/include/66/constants.h src/include/66/tree.h src/include/66/utils.h diff --git a/src/66/66-boot.c b/src/66/66-boot.c index 66d8d67be86e5ebdfbd44ea8c84772c46cb942aa..3d97fd0e2cf5ee8f9719c83225f275fd42e4db0c 100644 --- a/src/66/66-boot.c +++ b/src/66/66-boot.c @@ -547,7 +547,7 @@ int main(int argc, char const *const *argv,char const *const *envp) PROG = "66-boot" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/66/66-hpr.c b/src/66/66-hpr.c index 24757b6fd6c9a19801da2078fa7301d91af5c9d9..a6f24ddf0fb6f05b8b0775232cff687a8a84a96e 100644 --- a/src/66/66-hpr.c +++ b/src/66/66-hpr.c @@ -89,7 +89,8 @@ int main (int argc, char const *const *argv) PROG = "66-hpr" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; + for (;;) { int opt = subgetopt_r(argc, argv, "Hl:hprfdwWb:n", &l) ; diff --git a/src/66/66-inresolve.c b/src/66/66-inresolve.c index b9f721cec90b62bd873c21dd0abcd3ece668292f..e607a05e2a1ce51e17b84c806a540574dbf2eaf6 100644 --- a/src/66/66-inresolve.c +++ b/src/66/66-inresolve.c @@ -130,7 +130,7 @@ int main(int argc, char const *const *argv) PROG = "66-inresolve" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/66/66-inservice.c b/src/66/66-inservice.c index 86530ca1359236063b8cc1294517107ddbba94d3..54d4db6c0ca3ba0351acf2c6f6c105b02183b5fe 100644 --- a/src/66/66-inservice.c +++ b/src/66/66-inservice.c @@ -43,7 +43,7 @@ #include <66/environ.h> #include <66/state.h> -#include <s6/s6-supervise.h> +#include <s6/supervise.h> static unsigned int REVERSE = 0 ; static unsigned int NOFIELD = 1 ; @@ -864,7 +864,7 @@ int main(int argc, char const *const *argv, char const *const *envp) PROG = "66-inservice" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/66/66-instate.c b/src/66/66-instate.c index 0e0078d2111d5469a5993ec0baaee1445b9fdce7..799bcdfbdd7b45f2cd148c341368ba191a4a259b 100644 --- a/src/66/66-instate.c +++ b/src/66/66-instate.c @@ -109,7 +109,7 @@ int main(int argc, char const *const *argv) PROG = "66-instate" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/66/66-intree.c b/src/66/66-intree.c index e71350469652c35cddf1fd311c633d59c24eea9c..a8761079f3c58276426b0155fb18c4d05faa8cf1 100644 --- a/src/66/66-intree.c +++ b/src/66/66-intree.c @@ -478,7 +478,7 @@ int main(int argc, char const *const *argv, char const *const *envp) PROG = "66-intree" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/66/66-parser.c b/src/66/66-parser.c index bb6f7704cf472ca63fc1dc3bd0d4fae3f8419dfc..7a8ce010d6f7d085a8330458035fbdb6983aa9e7 100644 --- a/src/66/66-parser.c +++ b/src/66/66-parser.c @@ -89,7 +89,7 @@ int main(int argc, char const *const *argv,char const *const *envp) PROG = "66-parser" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/66/66-scanctl.c b/src/66/66-scanctl.c index 2be6ac83030b6dc7c84a0352ebc83238fd3f0d55..8ae5075d62efed46034efec4e3152277093e9bcd 100644 --- a/src/66/66-scanctl.c +++ b/src/66/66-scanctl.c @@ -192,7 +192,7 @@ int main(int argc, char const *const *argv, char const *const *envp) PROG = "66-scanctl" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/66/66-scandir.c b/src/66/66-scandir.c index 4c6544e1ea2113b0c02b87560f97978ebd5c5aa3..4caaa4d146cb371bccd445915f410da67345127f 100644 --- a/src/66/66-scandir.c +++ b/src/66/66-scandir.c @@ -582,7 +582,7 @@ int main(int argc, char const *const *argv, char const *const *envp) PROG = "66-scandir" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/66/66-shutdown.c b/src/66/66-shutdown.c index 53e4571ac3dc40e0af71e75516d660e8c5582de3..eb956b8ba4db690d348150b197e6176fd04eccec 100644 --- a/src/66/66-shutdown.c +++ b/src/66/66-shutdown.c @@ -90,11 +90,11 @@ static inline void add_one_day (struct tm *tm) tm->tm_year++ ; } -static inline void parse_hourmin (tain_t *when, char const *s) +static inline void parse_hourmin (tain *when, char const *s) { log_flow() ; - tai_t taithen ; + tai taithen ; struct tm tmthen ; unsigned int hour, minute ; size_t len = uint_scan(s, &hour) ; @@ -110,18 +110,18 @@ static inline void parse_hourmin (tain_t *when, char const *s) tmthen.tm_min = minute ; tmthen.tm_sec = 0 ; if (!tai_from_localtm(&taithen, &tmthen)) - log_dieusys(LOG_EXIT_SYS, "assemble broken-down time into tain_t") ; + log_dieusys(LOG_EXIT_SYS, "assemble broken-down time into tain") ; if (tai_less(&taithen, tain_secp(&STAMP))) { add_one_day(&tmthen) ; if (!tai_from_localtm(&taithen, &tmthen)) - log_dieusys(LOG_EXIT_SYS, "assemble broken-down time into tain_t") ; + log_dieusys(LOG_EXIT_SYS, "assemble broken-down time into tain") ; } when->sec = taithen ; when->nano = 0 ; } -static void parse_mins (tain_t *when, char const *s) +static void parse_mins (tain *when, char const *s) { log_flow() ; @@ -130,7 +130,7 @@ static void parse_mins (tain_t *when, char const *s) tain_addsec_g(when, mins * 60) ; } -static inline void parse_time (tain_t *when, char const *s) +static inline void parse_time (tain *when, char const *s) { log_flow() ; @@ -253,11 +253,12 @@ int main (int argc, char const *const *argv) int what = 0 ; int doactl = 0 ; int docancel = 0 ; - tain_t when ; + tain when ; PROG = "66-shutdown" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; + for (;;) { int opt = subgetopt_r(argc, argv, "v:Hl:hprkafFct:", &l) ; diff --git a/src/66/66-shutdownd.c b/src/66/66-shutdownd.c index 1f577c66a97f59397edd8e65b1126ddbbd7be4f3..b74a9551ddf85f782a6f637ac65079ba660a9f5f 100644 --- a/src/66/66-shutdownd.c +++ b/src/66/66-shutdownd.c @@ -45,7 +45,7 @@ #include <execline/config.h> -#include <s6/s6-supervise.h> +#include <s6/supervise.h> #include <s6/config.h> #include <66/config.h> @@ -188,7 +188,7 @@ static inline void run_rcshut (void) else log_warnusys("spawn ", rcshut) ; } -static inline void prepare_shutdown (buffer *b, tain_t *deadline, unsigned int *grace_time) +static inline void prepare_shutdown (buffer *b, tain *deadline, unsigned int *grace_time) { log_flow() ; @@ -203,7 +203,7 @@ static inline void prepare_shutdown (buffer *b, tain_t *deadline, unsigned int * if (u && u <= 300000) *grace_time = u ; } -static inline void handle_fifo (buffer *b, char *what, tain_t *deadline, unsigned int *grace_time) +static inline void handle_fifo (buffer *b, char *what, tain *deadline, unsigned int *grace_time) { log_flow() ; @@ -347,7 +347,7 @@ static inline void unsupervise_tree (void) int main (int argc, char const *const *argv) { unsigned int grace_time = 3000 ; - tain_t deadline ; + tain deadline ; int fdr, fdw ; buffer b ; char what = 'S' ; @@ -355,7 +355,8 @@ int main (int argc, char const *const *argv) PROG = "66-shutdownd" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; + for (;;) { int opt = subgetopt_r(argc, argv, "hl:s:g:CB", &l) ; @@ -419,7 +420,7 @@ int main (int argc, char const *const *argv) fdw = open_write(SHUTDOWND_FIFO) ; if (fdw == -1 || coe(fdw) == -1) log_dieusys(LOG_EXIT_SYS, "open ", SHUTDOWND_FIFO, " for writing") ; - if (sig_ignore(SIGPIPE) == -1) + if (!sig_ignore(SIGPIPE)) log_dieusys(LOG_EXIT_SYS, "sig_ignore SIGPIPE") ; buffer_init(&b, &buffer_read, fdr, buf, 64) ; tain_now_set_stopwatch_g() ; @@ -452,7 +453,7 @@ int main (int argc, char const *const *argv) prepare_stage4(what) ; unsupervise_tree() ; - if (sig_ignore(SIGTERM) == -1) log_warnusys("sig_ignore SIGTERM") ; + if (!sig_ignore(SIGTERM)) log_warnusys("sig_ignore SIGTERM") ; if (!inns) { diff --git a/src/66/66-tree.c b/src/66/66-tree.c index 674da05c699f53a8d2fc3b06b49d5511e773dbda..a74db4d51126ddb70a20f0d13d263e8cff2a6054 100644 --- a/src/66/66-tree.c +++ b/src/66/66-tree.c @@ -40,7 +40,7 @@ #include <66/state.h> #include <66/resolve.h> -#include <s6/s6-supervise.h> +#include <s6/supervise.h> #include <s6-rc/s6rc-servicedir.h> #include <s6-rc/s6rc-constants.h> @@ -556,7 +556,7 @@ void tree_modify_resolve(ss_resolve_t *res,ss_resolve_enum_t field,char const *r log_dieu_nclean(LOG_EXIT_SYS,&cleanup,"stralloc") ; sa.len-- ; - } + } if (!ss_resolve_modify_field(&modif,field,sa.s)) log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"modify field: ",ss_resolve_field_table[field].field) ; @@ -626,7 +626,7 @@ int main(int argc, char const *const *argv,char const *const *envp) PROG = "66-tree" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/66/66-update.c b/src/66/66-update.c index bac6821af0a2b712b04308155fe313e2a379cdda..881f742c4077d4793e95c5c90e814f4e32e30f82 100644 --- a/src/66/66-update.c +++ b/src/66/66-update.c @@ -131,39 +131,6 @@ void tree_allowed(stralloc *list,char const *base, char const *treename) stralloc_free(&sa) ; } -static int tree_contents_format(char const *tree) -{ - log_flow() ; - - /** even on empty tree Master bundle is always present. - * Check its format. Cdb format allow to retrieve all information - * of the service whatever the 66 version whereas ss_resolve_src_path - * may cause troubles with module if multiple same module was enabled. - * So, check the validity of the cdb format and use it if we can.*/ - int r = 1, e = errno, fd ; - size_t treelen = strlen(tree) ; - cdb_t c = CDB_ZERO ; - char d[treelen + SS_SVDIRS_LEN + SS_RESOLVE_LEN + SS_MASTER_LEN + 1] ; - auto_strings(d,tree,SS_SVDIRS,SS_RESOLVE,SS_MASTER) ; - - fd = open_readb(d) ; - if (fd < 0) - log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"open: ",d) ; - - if (!cdb_init_map(&c, fd, 1)) - log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"cdb_init: ", d) ; - - errno = 0 ; - r = cdb_find(&c, "name", 4) ; - if (r == -1 && errno == EPROTO) r == 0 ; - else r = 1 ; - - fd_close(fd) ; - cdb_free(&c) ; - errno = e ; - return r ; -} - void tree_contents(stralloc *list,char const *tree,ssexec_t *info) { log_flow() ; @@ -174,55 +141,29 @@ void tree_contents(stralloc *list,char const *tree,ssexec_t *info) stralloc sa = STRALLOC_ZERO ; char solve[treelen + SS_SVDIRS_LEN + SS_RESOLVE_LEN + SS_DB_LEN + SS_SRC_LEN + 1] ; - if (format == 1) - { - ss_resolve_t res = RESOLVE_ZERO ; - auto_strings(solve,tree,SS_SVDIRS,SS_RESOLVE) ; - if (!sastr_dir_get(&sa,solve,SS_MASTER + 1,S_IFREG)) - log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"get the service resolve files of: ",tree) ; - - auto_strings(solve,tree,SS_SVDIRS) ; - - for (pos = 0 ;pos < sa.len; pos += strlen(sa.s + pos) + 1) - { - char *name = sa.s + pos ; - int logname = get_rstrlen_until(name,SS_LOG_SUFFIX) ; - if (logname > 0) continue ; - - if (!ss_resolve_read(&res,solve,name)) - log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"read resolve file of: ",solve,"/",name) ; + ss_resolve_t res = RESOLVE_ZERO ; + auto_strings(solve,tree,SS_SVDIRS,SS_RESOLVE) ; + if (!sastr_dir_get(&sa,solve,SS_MASTER + 1,S_IFREG)) + log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"get the service resolve files of: ",tree) ; - if (res.disen) - if (!stralloc_catb(list,res.sa.s + res.src,strlen(res.sa.s + res.src) + 1)) - log_diesys_nclean(LOG_EXIT_SYS,&cleanup,"stralloc") ; + auto_strings(solve,tree,SS_SVDIRS) ; - log_trace(DRYRUN ? drun : "","tree: ",info->treename.s," contain service: ",res.sa.s + res.src) ; - } - } - else + for (pos = 0 ;pos < sa.len; pos += strlen(sa.s + pos) + 1) { - newlen = treelen + SS_SVDIRS_LEN ; - auto_strings(solve,tree,SS_SVDIRS,SS_SVC) ; - - if (!sastr_dir_get(&sa,solve,"",S_IFDIR)) - log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"get the source svc service files of: ",tree) ; + char *name = sa.s + pos ; + int logname = get_rstrlen_until(name,SS_LOG_SUFFIX) ; + if (logname > 0) continue ; - auto_string_from(solve,newlen,SS_DB,SS_SRC) ; + if (!ss_resolve_read(&res,solve,name)) + log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"read resolve file of: ",solve,"/",name) ; - if (!sastr_dir_get(&sa,solve,SS_MASTER + 1,S_IFDIR)) - log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"get source of atomic service files of: ",tree) ; + if (res.disen) + if (!stralloc_catb(list,res.sa.s + res.src,strlen(res.sa.s + res.src) + 1)) + log_diesys_nclean(LOG_EXIT_SYS,&cleanup,"stralloc") ; - for (pos = 0 ;pos < sa.len; pos += strlen(sa.s + pos) + 1) - { - char *name = sa.s + pos ; - int logname = get_rstrlen_until(name,SS_LOG_SUFFIX) ; - if (logname > 0) continue ; - log_trace(DRYRUN ? drun : "","tree: ",info->treename.s," contain service: ",name) ; - if (ss_resolve_src_path(list,name,info->owner,0) < 1) - log_dieu_nclean(LOG_EXIT_SYS,&cleanup,"resolve source path of: ",name) ; - - } + log_trace(DRYRUN ? drun : "","tree: ",info->treename.s," contain service: ",res.sa.s + res.src) ; } + stralloc_free(&sa) ; } @@ -271,7 +212,8 @@ int main(int argc, char const *const *argv,char const *const *envp) PROG = "66-update" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; + for (;;) { int opt = subgetopt_r(argc,argv, "hzv:l:d", &l) ; diff --git a/src/extra-tools/66-echo.c b/src/extra-tools/66-echo.c index 85878e16a85a15eddbb506883849f292f18acac0..8b42c2bde028758f36f83fed8e462f1bb48fa910 100644 --- a/src/extra-tools/66-echo.c +++ b/src/extra-tools/66-echo.c @@ -42,7 +42,8 @@ int main (int argc, char const *const *argv) char donl = 1 ; PROG = "66-echo" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; + for (;;) { int opt = subgetopt_r(argc, argv, "hns:", &l) ; diff --git a/src/extra-tools/execl-envfile.c b/src/extra-tools/execl-envfile.c index c56d2c4eda4be2705cbedf4212cfdc761a55f4b4..a1536214afc9bdb0b4776eb11e5a9d362d2016f4 100644 --- a/src/extra-tools/execl-envfile.c +++ b/src/extra-tools/execl-envfile.c @@ -65,7 +65,7 @@ int main (int argc, char const *const *argv, char const *const *envp) PROG = "execl-envfile" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/include/66/hpr.h b/src/include/66/hpr.h index 5a0d8017618adeaf6a29343c187d065ec5d0037b..b3be701e080dda7cea2c01c075eb131e97dbde7f 100644 --- a/src/include/66/hpr.h +++ b/src/include/66/hpr.h @@ -32,7 +32,7 @@ #define hpr_send(l,s, n) openwritenclose_unsafe(l, (s), n) #define hpr_cancel(l) hpr_send(l,"c", 1) -extern int hpr_shutdown (char const *live, unsigned int, tain_t const *, unsigned int) ; +extern int hpr_shutdown (char const *live, unsigned int, tain const *, unsigned int) ; extern void hpr_wall (char const *) ; #endif diff --git a/src/include/66/resolve.h b/src/include/66/resolve.h index 1c56de3be33c89d5463e817d81aac7f0d84fff1d..4e3822e1214790bb5f06bd5c14cce2c380394b88 100644 --- a/src/include/66/resolve.h +++ b/src/include/66/resolve.h @@ -22,7 +22,7 @@ #include <skalibs/stralloc.h> #include <skalibs/types.h> #include <skalibs/cdb.h> -#include <skalibs/cdb_make.h> +#include <skalibs/cdbmake.h> #include <skalibs/gccattributes.h> #include <66/ssexec.h> @@ -195,8 +195,8 @@ extern int ss_resolve_graph_publish(ss_resolve_graph_t *graph,unsigned int rever /** cdb */ extern int ss_resolve_read_cdb(ss_resolve_t *dres, char const *name) ; extern int ss_resolve_write_cdb(ss_resolve_t *res, char const *dst, char const *name) ; -extern int ss_resolve_add_cdb(struct cdb_make *c,char const *key,char const *data) ; -extern int ss_resolve_add_cdb_uint(struct cdb_make *c, char const *key,uint32_t data) ; -extern int ss_resolve_find_cdb(stralloc *result, cdb_t *c,char const *key) ; +extern int ss_resolve_add_cdb(cdbmaker *c,char const *key,char const *data) ; +extern int ss_resolve_add_cdb_uint(cdbmaker *c, char const *key,uint32_t data) ; +extern int ss_resolve_find_cdb(stralloc *result, cdb const *c,char const *key) ; #endif diff --git a/src/include/66/svc.h b/src/include/66/svc.h index aba7a464470e2d52a1f48b59cd861969125cde1a..8c6cdb487c8ebc664d8d71525afa8cf800a54547 100644 --- a/src/include/66/svc.h +++ b/src/include/66/svc.h @@ -29,7 +29,7 @@ struct ss_resolve_sig_s ss_resolve_t res ; unsigned int notify ; unsigned int ndeath; - tain_t deadline ; + tain deadline ; uint16_t ids ; char *sigtosend ; int sig ; @@ -77,7 +77,7 @@ enum sigactions_e extern int svc_switch_to(ssexec_t *info,unsigned int where) ; extern int svc_init(ssexec_t *info,char const *src, genalloc *ga) ; -extern int svc_init_pipe(ftrigr_t *fifo,genalloc *gasv,tain_t *deadline) ; +extern int svc_init_pipe(ftrigr_t *fifo,genalloc *gasv,tain *deadline) ; extern int svc_send(ssexec_t *info,genalloc *ga,char const *sig,char const *const *envp) ; extern int svc_unsupervise(ssexec_t *info,genalloc *ga,char const *sig,char const *const *envp) ; diff --git a/src/lib66/backup_cmd_switcher.c b/src/lib66/backup_cmd_switcher.c index 4cff08c6215977b5fef3304a9fc06acf67c02a40..a0441891225433135040b2a62dae2c5d2c24cca9 100644 --- a/src/lib66/backup_cmd_switcher.c +++ b/src/lib66/backup_cmd_switcher.c @@ -51,7 +51,7 @@ int backup_switcher(int argc, char const *const *argv,ssexec_t *info) type = -1 ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/lib66/hpr_shutdown.c b/src/lib66/hpr_shutdown.c index 0e2dcdb7c73f979dc527e8a4c5a450fb89ec299a..c5f5384c09efc48774806411a836a815a2ed28cf 100644 --- a/src/lib66/hpr_shutdown.c +++ b/src/lib66/hpr_shutdown.c @@ -25,7 +25,7 @@ #include <66/hpr.h> -int hpr_shutdown (char const *live, unsigned int what, tain_t const *when, unsigned int grace) +int hpr_shutdown (char const *live, unsigned int what, tain const *when, unsigned int grace) { log_flow() ; diff --git a/src/lib66/rc_manage.c b/src/lib66/rc_manage.c index 62ed0ab9bfa0bc9b9836856366828ada7fd2c706..551b6085effd5cfd321082585e135b8ff2ac2875 100644 --- a/src/lib66/rc_manage.c +++ b/src/lib66/rc_manage.c @@ -43,7 +43,7 @@ int rc_manage(ssexec_t *info,genalloc *ga) stralloc sares = STRALLOC_ZERO ; size_t newlen ; - tain_t deadline ; + tain deadline ; if (info->timeout) tain_from_millisecs(&deadline, info->timeout) ; else deadline = tain_infinite_relative ; tain_now_g() ; diff --git a/src/lib66/ss_info_utils.c b/src/lib66/ss_info_utils.c index 277336291437d2cdb23767f02f20e655d6ba0552..4c6e3e528aef9c68cb5c3380614bcfb97c43a81f 100644 --- a/src/lib66/ss_info_utils.c +++ b/src/lib66/ss_info_utils.c @@ -28,7 +28,7 @@ #include <skalibs/buffer.h> #include <skalibs/lolstdio.h> -#include <s6/s6-supervise.h> +#include <s6/supervise.h> #include <66/resolve.h> #include <66/state.h> diff --git a/src/lib66/ss_resolve.c b/src/lib66/ss_resolve.c index 6c66a34259abfe98771bc91caa2707f81f2f612b..df94c4861ac42be4ea0d3077e22db18be6c6e820 100644 --- a/src/lib66/ss_resolve.c +++ b/src/lib66/ss_resolve.c @@ -31,7 +31,7 @@ #include <skalibs/direntry.h> #include <skalibs/unix-transactional.h> #include <skalibs/diuint32.h> -#include <skalibs/cdb_make.h> +#include <skalibs/cdbmake.h> #include <skalibs/cdb.h> #include <skalibs/posixplz.h>//unlink_void @@ -43,7 +43,7 @@ #include <66/ssexec.h> #include <66/state.h> -#include <s6/s6-supervise.h> +#include <s6/supervise.h> ss_resolve_field_table_t ss_resolve_field_table[] = { @@ -1470,7 +1470,7 @@ int ss_resolve_svtree(stralloc *svtree,char const *svname,char const *tree) return -1 ; } -int ss_resolve_add_cdb_uint(struct cdb_make *c, char const *key,uint32_t data) +int ss_resolve_add_cdb_uint(cdbmaker *c, char const *key,uint32_t data) { log_flow() ; @@ -1478,20 +1478,20 @@ int ss_resolve_add_cdb_uint(struct cdb_make *c, char const *key,uint32_t data) size_t klen = strlen(key) ; uint32_pack_big(pack, data) ; - if (cdb_make_add(c,key,klen,pack,4) < 0) + if (!cdbmake_add(c,key,klen,pack,4)) log_warnsys_return(LOG_EXIT_ZERO,"cdb_make_add: ",key) ; return 1 ; } -int ss_resolve_add_cdb(struct cdb_make *c,char const *key,char const *data) +int ss_resolve_add_cdb(cdbmaker *c,char const *key,char const *data) { log_flow() ; size_t klen = strlen(key) ; size_t dlen = strlen(data) ; - if (cdb_make_add(c,key,klen,dlen ? data : 0,dlen) < 0) + if (!cdbmake_add(c,key,klen,dlen ? data : 0,dlen)) log_warnsys_return(LOG_EXIT_ZERO,"cdb_make_add: ",key) ; return 1 ; @@ -1503,7 +1503,7 @@ int ss_resolve_write_cdb(ss_resolve_t *res, char const *dst, char const *name) int fd ; size_t dstlen = strlen(dst), namelen = strlen(name); - struct cdb_make c = CDB_MAKE_ZERO ; + cdbmaker c = CDBMAKER_ZERO ; char tfile[dstlen + 1 + namelen + namelen + 9] ; char dfile[dstlen + 1 + namelen + 1] ; @@ -1519,8 +1519,8 @@ int ss_resolve_write_cdb(ss_resolve_t *res, char const *dst, char const *name) goto err_fd ; } - if (cdb_make_start(&c, fd) < 0) { - log_warnusys("cdb_make_start") ; + if (!cdbmake_start(&c, fd)) { + log_warnusys("cdbmake_start") ; goto err ; } @@ -1620,7 +1620,7 @@ int ss_resolve_write_cdb(ss_resolve_t *res, char const *dst, char const *name) /* disen */ !ss_resolve_add_cdb_uint(&c,"disen",res->disen)) goto err ; - if (cdb_make_finish(&c) < 0 || fsync(fd) < 0) { + if (!cdbmake_finish(&c) || fsync(fd) < 0) { log_warnusys("write to: ", tfile) ; goto err ; } @@ -1641,29 +1641,30 @@ int ss_resolve_write_cdb(ss_resolve_t *res, char const *dst, char const *name) return 0 ; } -int ss_resolve_find_cdb(stralloc *result, cdb_t *c,char const *key) +int ss_resolve_find_cdb(stralloc *result, cdb const *c,char const *key) { log_flow() ; uint32_t x = 0 ; size_t klen = strlen(key) ; + cdb_data cdata ; result->len = 0 ; - int r = cdb_find(c, key, klen) ; - if (r == -1) log_warnusys_return(LOG_EXIT_LESSONE,"search on cdb key: ",key) ; - if (!r) log_warnusys_return(LOG_EXIT_ZERO,"unknown key on cdb: ",key) ; - { - char pack[cdb_datalen(c) + 1] ; + int r = cdb_find(c, &cdata, key, klen) ; + if (r == -1) + log_warnusys_return(LOG_EXIT_LESSONE,"search on cdb key: ",key) ; + + if (!r) + log_warnusys_return(LOG_EXIT_ZERO,"unknown cdb key: ",key) ; - if (cdb_read(c, pack, cdb_datalen(c),cdb_datapos(c)) < 0) - log_warnusys_return(LOG_EXIT_LESSONE,"read on cdb value of key: ",key) ; + if (!cdata.len) + log_warnusys_return(LOG_EXIT_ZERO,"empty value of cdb key: ",key) ; - pack[cdb_datalen(c)] = 0 ; - uint32_unpack_big(pack, &x) ; + if (!auto_stra(result,cdata.s)) + log_warnusys_return(LOG_EXIT_LESSONE,"stralloc") ; - if (!auto_stra(result,pack)) log_warnusys_return(LOG_EXIT_LESSONE,"stralloc") ; - } + uint32_unpack_big(cdata.s, &x) ; return x ; } @@ -1675,7 +1676,7 @@ int ss_resolve_read_cdb(ss_resolve_t *dres, char const *name) int fd ; uint32_t x ; - cdb_t c = CDB_ZERO ; + cdb c = CDB_ZERO ; stralloc tmp = STRALLOC_ZERO ; ss_resolve_t res = RESOLVE_ZERO ; @@ -1684,7 +1685,7 @@ int ss_resolve_read_cdb(ss_resolve_t *dres, char const *name) log_warnusys("open: ",name) ; goto err_fd ; } - if (!cdb_init_map(&c, fd, 1)) { + if (!cdb_init_fromfd(&c, fd)) { log_warnusys("cdb_init: ", name) ; goto err ; } @@ -1796,7 +1797,7 @@ int ss_resolve_read_cdb(ss_resolve_t *dres, char const *name) res.ndeps = x ; /* noptsdeps */ - x =ss_resolve_find_cdb(&tmp,&c,"noptsdeps") ; + x = ss_resolve_find_cdb(&tmp,&c,"noptsdeps") ; res.noptsdeps = x ; /* nextdeps */ diff --git a/src/lib66/ss_utils.c b/src/lib66/ss_utils.c index dc8f1ec499e479a001fff63242d06edac6ccc5ee..abba2223801a8f9aeaa75329d1c8e798cd945976 100644 --- a/src/lib66/ss_utils.c +++ b/src/lib66/ss_utils.c @@ -35,7 +35,7 @@ #include <66/resolve.h> #include <66/parser.h> -#include <s6/s6-supervise.h> +#include <s6/supervise.h> sv_alltype const sv_alltype_zero = SV_ALLTYPE_ZERO ; sv_name_t const sv_name_zero = SV_NAME_ZERO ; diff --git a/src/lib66/ssexec_all.c b/src/lib66/ssexec_all.c index 557ccb39e416124142e6af76e6f561cdcf73ef03..8b60de73b69fe4500bef2a41c24bf92a769e9b6d 100644 --- a/src/lib66/ssexec_all.c +++ b/src/lib66/ssexec_all.c @@ -237,7 +237,7 @@ int ssexec_all(int argc, char const *const *argv,char const *const *envp,ssexec_ stralloc contents = STRALLOC_ZERO ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/lib66/ssexec_dbctl.c b/src/lib66/ssexec_dbctl.c index 5e371b142f117b8ad65f898787c642faf5101f0c..3656d1c5d528b547195fa0771658482245d6226e 100644 --- a/src/lib66/ssexec_dbctl.c +++ b/src/lib66/ssexec_dbctl.c @@ -26,7 +26,7 @@ #include <skalibs/genalloc.h> #include <skalibs/djbunix.h> -#include <s6/s6-supervise.h> +#include <s6/supervise.h> #include <s6-rc/config.h> #include <66/constants.h> @@ -175,7 +175,7 @@ static pid_t send(genalloc *gasv, char const *livetree, char const *signal,char { log_flow() ; - tain_t deadline ; + tain deadline ; tain_from_millisecs(&deadline, DEADLINE) ; tain_now_g() ; @@ -232,7 +232,7 @@ int ssexec_dbctl(int argc, char const *const *argv,char const *const *envp,ssexe //PROG = "66-dbctl" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/lib66/ssexec_disable.c b/src/lib66/ssexec_disable.c index 2e74e5b162edbaba5f39c7f231e886026697ea64..06401c975b899833512d8dfdb23aba955cc460f6 100644 --- a/src/lib66/ssexec_disable.c +++ b/src/lib66/ssexec_disable.c @@ -196,7 +196,7 @@ int ssexec_disable(int argc, char const *const *argv,char const *const *envp,sse r = nclassic = nlongrun = stop = logname = force = 0 ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/lib66/ssexec_enable.c b/src/lib66/ssexec_enable.c index 3907c1dd0e4560b7c0aec87a030c577e39d482a6..98fae2c0dbd1478a8d58f0c10e4cf8929582b592 100644 --- a/src/lib66/ssexec_enable.c +++ b/src/lib66/ssexec_enable.c @@ -260,7 +260,7 @@ int ssexec_enable(int argc, char const *const *argv,char const *const *envp,ssex r = nbsv = nclassic = nlongrun = start = 0 ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/lib66/ssexec_env.c b/src/lib66/ssexec_env.c index c57b428ffa92e592efe43607fcb0a5516ee2b234..9e150e91a670bd1efac64b1cbba8019f2ecda128 100644 --- a/src/lib66/ssexec_env.c +++ b/src/lib66/ssexec_env.c @@ -222,7 +222,7 @@ int ssexec_env(int argc, char const *const *argv,char const *const *envp,ssexec_ char const *sv = 0, *svconf = 0, *src = 0, *treename = 0, *import = 0 ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/lib66/ssexec_main.c b/src/lib66/ssexec_main.c index 17f303fec0ec2cc3d36c4e868297ce028f7dbfa6..29120e622b7bb3b98256a159f921ac90bfbdaa20 100644 --- a/src/lib66/ssexec_main.c +++ b/src/lib66/ssexec_main.c @@ -84,7 +84,8 @@ int ssexec_main(int argc, char const *const *argv,char const *const *envp,ssexec nargv[n++] = "fake_name" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; + int f = 0 ; for (;;) { diff --git a/src/lib66/ssexec_start.c b/src/lib66/ssexec_start.c index 88237360fab1b5c336c9057e560aafbd26f7b66b..254ea4ac23d21b16792e0b10c990af235b14ed8b 100644 --- a/src/lib66/ssexec_start.c +++ b/src/lib66/ssexec_start.c @@ -224,7 +224,7 @@ int ssexec_start(int argc, char const *const *argv,char const *const *envp,ssexe cl = rc = logname = 0 ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/lib66/ssexec_stop.c b/src/lib66/ssexec_stop.c index fa0aedff6af0607ac71cfe28cda933673a76be7a..f5ba88113c42d758cd031dfaae0b80ea7c343a54 100644 --- a/src/lib66/ssexec_stop.c +++ b/src/lib66/ssexec_stop.c @@ -133,7 +133,7 @@ int ssexec_stop(int argc, char const *const *argv,char const *const *envp,ssexec cl = rc = sigopt = 0 ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { diff --git a/src/lib66/ssexec_svctl.c b/src/lib66/ssexec_svctl.c index 3bfa52b2c84e43fb658ec5fe459d22b10d7ac036..88d51174bf3b3a2d1a34cbfdc288817897581fe3 100644 --- a/src/lib66/ssexec_svctl.c +++ b/src/lib66/ssexec_svctl.c @@ -34,7 +34,7 @@ #include <skalibs/tai.h> #include <skalibs/sig.h>//sig_ignore -#include <s6/s6-supervise.h>//s6_svstatus_t +#include <s6/supervise.h>//s6_svstatus_t #include <s6/ftrigr.h> @@ -339,11 +339,11 @@ static int handle_signal_pipe(genalloc *gakeep) return ok ; } -static int compute_timeout(tain_t *start,tain_t *tsv) +static int compute_timeout(tain *start,tain *tsv) { log_flow() ; - tain_t now,tpass ; + tain now,tpass ; tain_now_g() ; tain_copynow(&now) ; tain_sub(&tpass,&now,start) ; @@ -359,12 +359,12 @@ static void svc_listen_less(int state_val, int *state,unsigned int *did,unsigned did[pos] = 1 ; (*loop)--; } -static void svc_listen(unsigned int nsv,tain_t *deadline) +static void svc_listen(unsigned int nsv,tain *deadline) { log_flow() ; int r ; - tain_t start ; + tain start ; stralloc sa = STRALLOC_ZERO ; iopause_fd x = { .fd = ftrigr_fd(&fifo), .events = IOPAUSE_READ } ; ss_resolve_sig_t_ref svc ; @@ -449,7 +449,7 @@ static void svc_async(unsigned int i,unsigned int nsv) return ; } -int doit (int spfd, genalloc *gakeep, tain_t *deadline) +int doit (int spfd, genalloc *gakeep, tain *deadline) { log_flow() ; @@ -492,7 +492,7 @@ int ssexec_svctl(int argc, char const *const *argv,char const *const *envp,ssexe int e, isup, r, ret = 1 ; unsigned int death, tsv, reverse, tsv_g ; int SIGNAL = -1 ; - tain_t ttmain ; + tain ttmain ; genalloc gakeep = GENALLOC_ZERO ; //type ss_resolve_sig stralloc sares = STRALLOC_ZERO ; @@ -509,7 +509,7 @@ int ssexec_svctl(int argc, char const *const *argv,char const *const *envp,ssexe //PROG = "66-svctl" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) { @@ -631,7 +631,7 @@ int ssexec_svctl(int argc, char const *const *argv,char const *const *envp,ssexe } else sv_signal.ndeath = death ; - tain_t tcheck ; + tain tcheck ; tain_from_millisecs(&tcheck,tsv) ; int check = tain_to_millisecs(&tcheck) ; if (check > 0) @@ -681,10 +681,10 @@ int ssexec_svctl(int argc, char const *const *argv,char const *const *envp,ssexe int spfd = selfpipe_init() ; if (spfd < 0) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ; - if (selfpipe_trap(SIGCHLD) < 0) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ; - if (selfpipe_trap(SIGINT) < 0) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ; - if (selfpipe_trap(SIGTERM) < 0) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ; - if (sig_ignore(SIGPIPE) < 0) log_dieusys(LOG_EXIT_SYS,"ignore SIGPIPE") ; + if (!selfpipe_trap(SIGCHLD)) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ; + if (!selfpipe_trap(SIGINT)) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ; + if (!selfpipe_trap(SIGTERM)) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ; + if (!sig_ignore(SIGPIPE)) log_dieusys(LOG_EXIT_SYS,"ignore SIGPIPE") ; if (!svc_init_pipe(&fifo,&gakeep,&ttmain)) log_dieu(LOG_EXIT_SYS,"init pipe") ; diff --git a/src/lib66/svc_init.c b/src/lib66/svc_init.c index d834b5f5be9aa3cbf798bf861d4b0bcfb27b51be..a4642b20a6da1fbfc3489aa12ee8f438a933c5b0 100644 --- a/src/lib66/svc_init.c +++ b/src/lib66/svc_init.c @@ -28,7 +28,7 @@ #include <skalibs/djbunix.h> #include <skalibs/posixplz.h>//touch -#include <s6/s6-supervise.h> +#include <s6/supervise.h> #include <s6/ftrigr.h> #include <s6/ftrigw.h> @@ -52,7 +52,7 @@ int svc_init(ssexec_t *info,char const *src, genalloc *ga) genalloc ids = GENALLOC_ZERO ; // uint16_t ss_state_t sta = STATE_ZERO ; - tain_t deadline ; + tain deadline ; tain_now_set_stopwatch_g() ; tain_addsec(&deadline,&STAMP,2) ; diff --git a/src/lib66/svc_init_pipe.c b/src/lib66/svc_init_pipe.c index e03502957fa770469c750407e43223b51fa481bc..6747fc37709416ae6325eec00f128269aa23c853 100644 --- a/src/lib66/svc_init_pipe.c +++ b/src/lib66/svc_init_pipe.c @@ -24,13 +24,13 @@ #include <s6/ftrigr.h> #include <s6/ftrigw.h> -#include <s6/s6-supervise.h> +#include <s6/supervise.h> #include <66/utils.h> #include <66/resolve.h> -int svc_init_pipe(ftrigr_t *fifo,genalloc *gasv,tain_t *deadline) +int svc_init_pipe(ftrigr_t *fifo,genalloc *gasv,tain *deadline) { log_flow() ; diff --git a/src/lib66/tree_cmd_state.c b/src/lib66/tree_cmd_state.c index 239bfa8c7cdc7e4fbfa8b5faa5bc2a7a591ae290..5d8ae727ef384d52df34885c31f69b0c88410e36 100644 --- a/src/lib66/tree_cmd_state.c +++ b/src/lib66/tree_cmd_state.c @@ -45,7 +45,7 @@ int tree_state(int argc, char const *const *argv) verbosity = 1 ; add = del = sch = err = 0 ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; for (;;) {