diff --git a/src/include/66/66.h b/src/include/66/66.h index 16ea168cb24a67e00ed5c2f5b67a8fe282e96dd0..c2ab9888110639365f7932b36eb30556c650eba1 100644 --- a/src/include/66/66.h +++ b/src/include/66/66.h @@ -22,7 +22,7 @@ #include <66/graph.h> #include <66/hpr.h> #include <66/info.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/resolve.h> #include <66/sanitize.h> #include <66/service.h> diff --git a/src/include/66/environ.h b/src/include/66/environ.h index b531c2e56d45f4fb0d4d24174192f5bd038ec211..58f7a0506695eeee1abcf7a39064ca719c8f0246 100644 --- a/src/include/66/environ.h +++ b/src/include/66/environ.h @@ -20,7 +20,7 @@ #include <skalibs/stralloc.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/service.h> extern int env_resolve_conf(stralloc *env,char const *svname,uid_t owner) ; diff --git a/src/include/66/parser.h b/src/include/66/parse.h similarity index 86% rename from src/include/66/parser.h rename to src/include/66/parse.h index 7429330e58212e957ef7f535c12b9eaa70d4daf8..de23ecb5295ac67d2f9866c82288b2bd67fa3932 100644 --- a/src/include/66/parser.h +++ b/src/include/66/parse.h @@ -1,5 +1,5 @@ /* - * parser.h + * parse.h * * Copyright (c) 2018-2021 Eric Vidal <eric@obarun.org> * @@ -12,8 +12,8 @@ * except according to the terms contained in the LICENSE file./ */ -#ifndef SS_PARSER_H -#define SS_PARSER_H +#ifndef SS_PARSE_H +#define SS_PARSE_H #include <sys/types.h> #include <stdint.h> @@ -47,8 +47,8 @@ extern void ssexec_enable_cleanup(void) ; extern void start_parser(char const *sv, ssexec_t *info, uint8_t disable_module, char const *directory_forced) ; extern void parse_service(char const *sv, ssexec_t *info, uint8_t force, uint8_t conf) ; -extern int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint8_t force, uint8_t conf, unsigned int *residx, char const *forced_directory, char const *main) ; -extern int parse_dependencies(resolve_service_t *res, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint8_t force,uint8_t conf, char const *forced_directory, char const *main, uint8_t requiredby) ; +extern int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint8_t force, uint8_t conf, char const *forced_directory, char const *main, char const *inmodule) ; +extern int parse_interdependences(char const *service, char const *list, unsigned int listlen, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint8_t force, uint8_t conf, char const *forced_directory, char const *main, char const *inmodule) ; /** split */ extern int parse_section(stralloc *secname, char const *str, size_t *pos) ; @@ -78,6 +78,6 @@ extern void parse_error(int ierr, int idsec, int idkey) ; extern void parse_module(resolve_service_t *res, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint8_t force) ; /** resolve */ -extern void parse_compute_resolve(resolve_service_t *res, ssexec_t *info) ; +extern void parse_compute_resolve(unsigned int idx, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info) ; #endif diff --git a/src/lib66/environ/env_compute.c b/src/lib66/environ/env_compute.c index 3d7c6b77c99e2369a3f14d38c5ff9c4df4bfb2da..97f49fd6beb6f2f63c268e806b448857bc7cab41 100644 --- a/src/lib66/environ/env_compute.c +++ b/src/lib66/environ/env_compute.c @@ -22,7 +22,7 @@ #include <66/environ.h> #include <66/service.h> -#include <66/parser.h> +#include <66/parse.h> int env_compute(stralloc *result, resolve_service_t *res) diff --git a/src/lib66/environ/env_make_symlink.c b/src/lib66/environ/env_make_symlink.c index ca4c0857ff5ab7282f088b9e4a31d0cc06773813..7e27c3fd45d261b54549eb736deb0bd14eb2ad13 100644 --- a/src/lib66/environ/env_make_symlink.c +++ b/src/lib66/environ/env_make_symlink.c @@ -21,7 +21,7 @@ #include <skalibs/unix-transactional.h>//atomic_symlink #include <66/environ.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/constants.h> #include <66/service.h> diff --git a/src/lib66/environ/env_prepare_for_write.c b/src/lib66/environ/env_prepare_for_write.c index 49063b782d82805273a9bc87abc511df05c5b84c..b688aea9f1b83d1c3667ca247af1cabfd0ead798 100644 --- a/src/lib66/environ/env_prepare_for_write.c +++ b/src/lib66/environ/env_prepare_for_write.c @@ -24,7 +24,7 @@ #include <66/environ.h> #include <66/constants.h> #include <66/service.h> -#include <66/parser.h> +#include <66/parse.h> int env_prepare_for_write(stralloc *dst, stralloc *contents, resolve_service_t *res) { diff --git a/src/lib66/exec/ssexec_parse.c b/src/lib66/exec/ssexec_parse.c index 1e22bf68b711b6a2f8fc4dc0e9938847d4ad0c77..774f9775d846aa467ee5b885009014fa9860ee33 100644 --- a/src/lib66/exec/ssexec_parse.c +++ b/src/lib66/exec/ssexec_parse.c @@ -23,7 +23,7 @@ #include <oblibs/obgetopt.h> #include <oblibs/sastr.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/ssexec.h> #include <66/utils.h> #include <66/sanitize.h> diff --git a/src/lib66/parse/parse_clean_runas.c b/src/lib66/parse/parse_clean_runas.c index 3db2aaf22eb7e1d7ff6d47984e521407155f9481..2e5070b61e5403e41eaf2a6fb998286f138ac568 100644 --- a/src/lib66/parse/parse_clean_runas.c +++ b/src/lib66/parse/parse_clean_runas.c @@ -22,7 +22,7 @@ #include <skalibs/types.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/utils.h> int parse_clean_runas(char const *str, int idsec, int idkey) diff --git a/src/lib66/parse/parse_compute_list.c b/src/lib66/parse/parse_compute_list.c index ad6c21575e3427efb672f7161dfcb2eb6c073cd0..211912d9211b7394009cedd476806afe64ca7ef3 100644 --- a/src/lib66/parse/parse_compute_list.c +++ b/src/lib66/parse/parse_compute_list.c @@ -22,7 +22,7 @@ #include <skalibs/stralloc.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/resolve.h> #include <66/service.h> @@ -34,26 +34,23 @@ int parse_compute_list(resolve_wrapper_t_ref wres, stralloc *sa, uint32_t *res, int r, found = 0 ; size_t len = sa->len, pos = 0 ; size_t nelement = sastr_nelement(sa) ; - char t[len + nelement + 2] ; + stralloc tmp = STRALLOC_ZERO ; char f[len + nelement + 2] ; memset(f, 0, len) ; - memset(t, 0, len) ; - sastr_to_char(t, sa) ; + for (; pos < sa->len ; pos += strlen(sa->s + pos) + 1) { - for (; pos < len ; pos += strlen(t + pos) + 1) { - - if (t[pos] == '#') + if (sa->s[pos] == '#') continue ; if (opts) { - sa->len = 0 ; + tmp.len = 0 ; - r = service_frontend_path(sa, t + pos, getuid(), 0) ; + r = service_frontend_path(&tmp, sa->s + pos, getuid(), 0) ; if (r == -1) - log_dieu(LOG_EXIT_SYS, "get frontend service file of: ", t + pos) ; + log_dieu(LOG_EXIT_SYS, "get frontend service file of: ", sa->s + pos) ; if (!r) continue ; @@ -62,7 +59,7 @@ int parse_compute_list(resolve_wrapper_t_ref wres, stralloc *sa, uint32_t *res, } - auto_strings(f + strlen(f), t + pos, " ") ; + auto_strings(f + strlen(f), sa->s + pos, " ") ; (*res)++ ; @@ -72,6 +69,8 @@ int parse_compute_list(resolve_wrapper_t_ref wres, stralloc *sa, uint32_t *res, f[strlen(f) - 1] = 0 ; + stralloc_free(&tmp) ; + return resolve_add_string(wres, f) ; } diff --git a/src/lib66/parse/parse_contents.c b/src/lib66/parse/parse_contents.c index 517a1d99cf454fb9b4bb21d0989f6bb5e6049201..46cc33080d3037dca821346152ee1ad2cdbdd2ef 100644 --- a/src/lib66/parse/parse_contents.c +++ b/src/lib66/parse/parse_contents.c @@ -19,7 +19,7 @@ #include <skalibs/stralloc.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/resolve.h> #include <66/enum.h> diff --git a/src/lib66/parse/parse_line_g.c b/src/lib66/parse/parse_line_g.c index e4646b30e6c3e84c81e2ac5458baaa1b14b6b65c..6ca436db1334b83d6876c019cf9df92de432452e 100644 --- a/src/lib66/parse/parse_line_g.c +++ b/src/lib66/parse/parse_line_g.c @@ -19,7 +19,7 @@ #include <skalibs/stralloc.h> -#include <66/parser.h> +#include <66/parse.h> /* @Return 2 if bad format */ int parse_line_g(char *store, parse_mill_t *config, char const *str, size_t *pos) diff --git a/src/lib66/parse/parse_mandatory.c b/src/lib66/parse/parse_mandatory.c index 4c09d6504c46506f5a46f7d80d5296298b4c8d95..cc4e34273611765c65ef7c9408d9e75db8123a47 100644 --- a/src/lib66/parse/parse_mandatory.c +++ b/src/lib66/parse/parse_mandatory.c @@ -14,7 +14,7 @@ #include <oblibs/log.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/resolve.h> #include <66/enum.h> diff --git a/src/lib66/parse/parse_parentheses.c b/src/lib66/parse/parse_parentheses.c index fc3bbd6cc5a345a42d91482de36c8fdf579c4f2e..eacf60b612f7b705cdcadb30b791e6d02a9c66a1 100644 --- a/src/lib66/parse/parse_parentheses.c +++ b/src/lib66/parse/parse_parentheses.c @@ -17,7 +17,7 @@ #include <oblibs/string.h> -#include <66/parser.h> +#include <66/parse.h> static char parse_char_next(char const *s, size_t *pos) { diff --git a/src/lib66/parse/parse_section.c b/src/lib66/parse/parse_section.c index 014c5abd5758c0bc82113b0936e1db9ca59859db..80c5a40484ee914eefc2f3890354ad0dc3c1c7dd 100644 --- a/src/lib66/parse/parse_section.c +++ b/src/lib66/parse/parse_section.c @@ -20,7 +20,7 @@ #include <skalibs/stralloc.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/enum.h> int parse_section(stralloc *secname, char const *str, size_t *pos) diff --git a/src/lib66/parse/parse_split_from_section.c b/src/lib66/parse/parse_split_from_section.c index 71b9c7365bb464e78145692a091372fffae9abc0..1e77451fc1a0882e570485e9aeaf4cb9b3f8e8ed 100644 --- a/src/lib66/parse/parse_split_from_section.c +++ b/src/lib66/parse/parse_split_from_section.c @@ -23,7 +23,7 @@ #include <skalibs/stralloc.h> #include <skalibs/types.h> //UINT_FMT -#include <66/parser.h> +#include <66/parse.h> #include <66/resolve.h> #include <66/enum.h> diff --git a/src/lib66/parse/parse_store_environ.c b/src/lib66/parse/parse_store_environ.c index f988ef74c5b8adf1aea046f108e17ce32d24d8dd..765e5aef1830153b339da72d614c83ba7f4d65be 100644 --- a/src/lib66/parse/parse_store_environ.c +++ b/src/lib66/parse/parse_store_environ.c @@ -19,7 +19,7 @@ #include <skalibs/stralloc.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/resolve.h> #include <66/enum.h> #include <66/utils.h> diff --git a/src/lib66/parse/parse_store_g.c b/src/lib66/parse/parse_store_g.c index a0c876769457bbd842f0ad3bf3bfce70dd9d4b5e..f3f5d6098b13ba36a51ec3ab764d6350b2d8b391 100644 --- a/src/lib66/parse/parse_store_g.c +++ b/src/lib66/parse/parse_store_g.c @@ -14,7 +14,7 @@ #include <oblibs/log.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/resolve.h> #include <66/enum.h> diff --git a/src/lib66/parse/parse_store_logger.c b/src/lib66/parse/parse_store_logger.c index 049b4a9e715013161117b69bcaf377b30e953a89..733e3b17447bf3741f89dfeb21f505695317fb6f 100644 --- a/src/lib66/parse/parse_store_logger.c +++ b/src/lib66/parse/parse_store_logger.c @@ -18,7 +18,7 @@ #include <skalibs/types.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/resolve.h> #include <66/service.h> #include <66/enum.h> diff --git a/src/lib66/parse/parse_store_regex.c b/src/lib66/parse/parse_store_regex.c index cbdb40905ae1d23535fffa817673d3f8e1ed5372..4f938d98930364d0c380ae147a5995ba57949f64 100644 --- a/src/lib66/parse/parse_store_regex.c +++ b/src/lib66/parse/parse_store_regex.c @@ -19,7 +19,7 @@ #include <skalibs/stralloc.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/resolve.h> #include <66/enum.h> @@ -27,7 +27,7 @@ int parse_store_regex(resolve_service_t *res, char *store, int idsec, int idkey) { log_flow() ; - if (res->type == TYPE_CLASSIC || res->type == TYPE_ONESHOT) + if (res->type != TYPE_MODULE) return 1 ; stralloc sa = STRALLOC_ZERO ; diff --git a/src/lib66/parse/parse_store_start_stop.c b/src/lib66/parse/parse_store_start_stop.c index 9b579ca67149c63b1a69fd5a56d69594e447f5dc..413a9d451e06fdd07cdc214705a5b3313bec4d36 100644 --- a/src/lib66/parse/parse_store_start_stop.c +++ b/src/lib66/parse/parse_store_start_stop.c @@ -18,7 +18,7 @@ #include <skalibs/stralloc.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/resolve.h> #include <66/service.h> #include <66/enum.h> diff --git a/src/lib66/sanitize/sanitize_graph.c b/src/lib66/sanitize/sanitize_graph.c index 7e8efb128fc5b80a8b5de6de7d70adcae9af0bef..77c4d54cecc99cf6a036ff6905234ea05b788128 100644 --- a/src/lib66/sanitize/sanitize_graph.c +++ b/src/lib66/sanitize/sanitize_graph.c @@ -24,7 +24,7 @@ #include <66/ssexec.h> #include <66/service.h> #include <66/resolve.h> -#include <66/parser.h> +#include <66/parse.h> #include <66/state.h> #include <66/graph.h>