From 30abc76e6ae765bf80f46934f065e8a50a2100a0 Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Tue, 21 Nov 2023 23:23:14 +1100 Subject: [PATCH] adapt to new resolve field name --- src/lib66/exec/ssexec_resolve.c | 2 +- src/lib66/exec/ssexec_tree_signal.c | 2 +- src/lib66/parse/parse_compute_resolve.c | 4 +- src/lib66/parse/parse_frontend.c | 37 ++++++++++--------- src/lib66/parse/parse_interdependences.c | 6 +-- .../parse/parse_rename_interdependences.c | 2 +- src/lib66/service/service_enable_disable.c | 2 +- src/lib66/service/service_resolve_copy.c | 2 +- .../service/service_resolve_get_field_tosa.c | 4 +- .../service/service_resolve_modify_field.c | 8 ++-- src/lib66/service/service_resolve_read_cdb.c | 4 +- src/lib66/service/service_resolve_write_cdb.c | 2 +- 12 files changed, 38 insertions(+), 37 deletions(-) diff --git a/src/lib66/exec/ssexec_resolve.c b/src/lib66/exec/ssexec_resolve.c index 1fa83425..41aab5c9 100644 --- a/src/lib66/exec/ssexec_resolve.c +++ b/src/lib66/exec/ssexec_resolve.c @@ -186,7 +186,7 @@ int ssexec_resolve(int argc, char const *const *argv, ssexec_t *info) "owner", "treename", "user" , - "inmodule", + "inns", "enabled", "home", diff --git a/src/lib66/exec/ssexec_tree_signal.c b/src/lib66/exec/ssexec_tree_signal.c index e3f5f9c8..a7643914 100644 --- a/src/lib66/exec/ssexec_tree_signal.c +++ b/src/lib66/exec/ssexec_tree_signal.c @@ -456,7 +456,7 @@ static int ssexec_callback(stralloc *sa, ssexec_t *info, unsigned int what) if (!what ? res.enabled : ste.issupervised == STATE_FLAGS_TRUE && !res.earlier) { - if (get_rstrlen_until(name, SS_LOG_SUFFIX) < 0 && !res.inmodule) + if (get_rstrlen_until(name, SS_LOG_SUFFIX) < 0 && !res.inns) if (!sastr_add_string(sa, name)) log_dieu(LOG_EXIT_SYS, "add string") ; } diff --git a/src/lib66/parse/parse_compute_resolve.c b/src/lib66/parse/parse_compute_resolve.c index e13580bf..f5192dd4 100644 --- a/src/lib66/parse/parse_compute_resolve.c +++ b/src/lib66/parse/parse_compute_resolve.c @@ -393,8 +393,8 @@ static void compute_log(resolve_service_t *res, resolve_service_t *ares, unsigne lres.owner = res->owner ; lres.treename = resolve_add_string(wres, str + res->treename) ; lres.user = resolve_add_string(wres, str + res->user) ; - if (res->inmodule) - lres.inmodule = resolve_add_string(wres, str + res->inmodule) ; + if (res->inns) + lres.inns = resolve_add_string(wres, str + res->inns) ; lres.path.home = resolve_add_string(wres, str + res->path.home) ; lres.path.frontend = resolve_add_string(wres, str + res->path.frontend) ; diff --git a/src/lib66/parse/parse_frontend.c b/src/lib66/parse/parse_frontend.c index 01fae33b..d8a9c66e 100644 --- a/src/lib66/parse/parse_frontend.c +++ b/src/lib66/parse/parse_frontend.c @@ -15,6 +15,7 @@ #include <stdint.h> #include <string.h> #include <stdlib.h> //free +#include <sys/stat.h> #include <oblibs/log.h> #include <oblibs/sastr.h> @@ -84,7 +85,7 @@ static void parse_service_instance(stralloc *frontend, char const *svsrc, char c * @Die on fail * @Return 1 on success * @Return 2 -> already parsed */ -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) +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 *inns) { log_flow() ; @@ -100,13 +101,13 @@ int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *aresle if (!ob_dirname(svsrc, sv)) log_dieu(LOG_EXIT_SYS, "get dirname of: ", sv) ; - if (inmodule) { + if (inns) { if (service_resolve_array_search(ares, *areslen, svname) >= 0) log_warn_return(2, "ignoring: ", svname, " service -- already appended to the selection") ; - char n[strlen(inmodule) + 1 + strlen(svname) + 1] ; - auto_strings(n, inmodule, ":", svname) ; + char n[strlen(inns) + 1 + strlen(svname) + 1] ; + auto_strings(n, inns, ":", svname) ; if (service_resolve_array_search(ares, *areslen, n) >= 0) log_warn_return(2, "ignoring: ", n, " service -- already appended to the selection") ; @@ -189,13 +190,13 @@ int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *aresle } } - if (inmodule) { + if (inns) { - char n[strlen(inmodule) + 1 + strlen(svname) + 1] ; - auto_strings(n, inmodule,":",svname) ; + char n[strlen(inns) + 1 + strlen(svname) + 1] ; + auto_strings(n, inns,":",svname) ; res.name = resolve_add_string(wres, n) ; - res.inmodule = resolve_add_string(wres, inmodule) ; + res.inns = resolve_add_string(wres, inns) ; } else { @@ -217,8 +218,11 @@ int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *aresle /** contents of directory should be listed by service_frontend_path * except for module type */ - if (scan_mode(sv, S_IFDIR) == 1 && res.type != TYPE_MODULE) - goto freed ; + if (scan_mode(sv, S_IFDIR) == 1 && res.type != TYPE_MODULE) { + stralloc_free(&sa) ; + resolve_free(wres) ; + return 1 ; + } if (!parse_contents(wres, file, svname)) log_dieu(LOG_EXIT_SYS, "parse file of service: ", svname) ; @@ -254,24 +258,23 @@ int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *aresle /** parse interdependences if the service was never parsed */ if (isparsed == STATE_FLAGS_FALSE) { - if (!parse_interdependences(svname, res.sa.s + res.dependencies.depends, res.dependencies.ndepends, ares, areslen, info, force, conf, forced_directory, main, inmodule)) + if (!parse_interdependences(svname, res.sa.s + res.dependencies.depends, res.dependencies.ndepends, ares, areslen, info, force, conf, forced_directory, main, inns)) log_dieu(LOG_EXIT_SYS, "parse dependencies of service: ", svname) ; } if (res.type == TYPE_MODULE) parse_module(&res, ares, areslen, info, force) ; - if (service_resolve_array_search(ares, *areslen, svname) < 0) { + if (service_resolve_array_search(ares, *areslen, res.sa.s + res.name) < 0) { - log_trace("add service ", svname, " to the selection") ; + log_trace("add service ", res.sa.s + res.name, " to the selection") ; if (*areslen > SS_MAX_SERVICE) log_die(LOG_EXIT_SYS, "too many services to parse -- compile again 66 changing the --max-service options") ; ares[(*areslen)++] = res ; } - freed: - stralloc_free(&sa) ; - free(wres) ; - return 1 ; + stralloc_free(&sa) ; + free(wres) ; + return 1 ; } diff --git a/src/lib66/parse/parse_interdependences.c b/src/lib66/parse/parse_interdependences.c index 7a17d0d3..6dc126a0 100644 --- a/src/lib66/parse/parse_interdependences.c +++ b/src/lib66/parse/parse_interdependences.c @@ -30,7 +30,7 @@ #include <66/instance.h> #include <66/module.h> -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) +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 *inns) { log_flow() ; @@ -89,11 +89,9 @@ int parse_interdependences(char const *service, char const *list, unsigned int l * forced_directory == 0 means that the service * comes from an external directory of the module. * In this case don't associated it at the module. */ - parse_frontend(sa.s, ares, areslen, info, force, conf, forced_directory, main, !forced_directory ? 0 : inmodule) ; - + parse_frontend(sa.s, ares, areslen, info, force, conf, forced_directory, main, !forced_directory ? 0 : inns) ; } - } else log_trace("no interdependences found for service: ", service) ; diff --git a/src/lib66/parse/parse_rename_interdependences.c b/src/lib66/parse/parse_rename_interdependences.c index 279d045c..df349abb 100644 --- a/src/lib66/parse/parse_rename_interdependences.c +++ b/src/lib66/parse/parse_rename_interdependences.c @@ -52,7 +52,7 @@ static void parse_prefix(char *result, stack *stk, resolve_service_t *ares, unsi /** check if the dependencies is a external one. In this * case, the service is not considered as part of the prefix */ - if (ares[aresid].inmodule && (!strcmp(ares[aresid].sa.s + ares[aresid].inmodule, prefix))) + if (ares[aresid].inns && (!strcmp(ares[aresid].sa.s + ares[aresid].inns, prefix))) auto_strings(result + strlen(result), prefix, ":", stk->s + pos, " ") ; else auto_strings(result + strlen(result), stk->s + pos, " ") ; diff --git a/src/lib66/service/service_enable_disable.c b/src/lib66/service/service_enable_disable.c index 6e67d685..3a1edbd0 100644 --- a/src/lib66/service/service_enable_disable.c +++ b/src/lib66/service/service_enable_disable.c @@ -76,7 +76,7 @@ void service_enable_disable(graph_t *g, unsigned int idx, resolve_service_t *are /** the logger must be disabled to avoid to start it * with the 66 tree start <tree> command */ - if (res->logger.want && !action && res->type == TYPE_CLASSIC && !res->inmodule) { + if (res->logger.want && !action && res->type == TYPE_CLASSIC && !res->inns) { char *name = res->sa.s + res->logger.name ; diff --git a/src/lib66/service/service_resolve_copy.c b/src/lib66/service/service_resolve_copy.c index a92b3812..a34a08d6 100644 --- a/src/lib66/service/service_resolve_copy.c +++ b/src/lib66/service/service_resolve_copy.c @@ -48,7 +48,7 @@ int service_resolve_copy(resolve_service_t *dst, resolve_service_t *res) dst->owner = res->owner ; dst->treename = res->treename ; dst->user = res->user ; - dst->inmodule = res->inmodule ; + dst->inns = res->inns ; dst->enabled = res->enabled ; // path diff --git a/src/lib66/service/service_resolve_get_field_tosa.c b/src/lib66/service/service_resolve_get_field_tosa.c index 3fb6dbe5..c0480758 100644 --- a/src/lib66/service/service_resolve_get_field_tosa.c +++ b/src/lib66/service/service_resolve_get_field_tosa.c @@ -92,8 +92,8 @@ int service_resolve_get_field_tosa(stralloc *sa, resolve_service_t *res, resolve str = res->sa.s + res->user ; break ; - case E_RESOLVE_SERVICE_INMODULE: - str = res->sa.s + res->inmodule ; + case E_RESOLVE_SERVICE_INNS: + str = res->sa.s + res->inns ; break ; case E_RESOLVE_SERVICE_ENABLED: diff --git a/src/lib66/service/service_resolve_modify_field.c b/src/lib66/service/service_resolve_modify_field.c index abf5e686..bbe51703 100644 --- a/src/lib66/service/service_resolve_modify_field.c +++ b/src/lib66/service/service_resolve_modify_field.c @@ -35,7 +35,7 @@ resolve_field_table_t resolve_service_field_table[] = { [E_RESOLVE_SERVICE_OWNER] = { .field = "owner" }, [E_RESOLVE_SERVICE_TREENAME] = { .field = "treename" }, [E_RESOLVE_SERVICE_USER] = { .field = "user" }, - [E_RESOLVE_SERVICE_INMODULE] = { .field = "inmodule" }, + [E_RESOLVE_SERVICE_INNS] = { .field = "inns" }, [E_RESOLVE_SERVICE_ENABLED] = { .field = "enabled" }, // path @@ -188,12 +188,12 @@ int service_resolve_modify_field(resolve_service_t *res, resolve_service_enum_t res->user = resolve_add_string(wres, data) ; break ; - case E_RESOLVE_SERVICE_INMODULE: - res->inmodule = resolve_add_string(wres, data) ; + case E_RESOLVE_SERVICE_INNS: + res->inns = resolve_add_string(wres, data) ; break ; case E_RESOLVE_SERVICE_ENABLED: - res->enabled = resolve_add_uint(data) ; ; + res->enabled = resolve_add_uint(data) ; break ; diff --git a/src/lib66/service/service_resolve_read_cdb.c b/src/lib66/service/service_resolve_read_cdb.c index c41705f6..5b482c4f 100644 --- a/src/lib66/service/service_resolve_read_cdb.c +++ b/src/lib66/service/service_resolve_read_cdb.c @@ -60,8 +60,8 @@ int service_resolve_read_cdb(cdb *c, resolve_service_t *res) res->treename = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; resolve_find_cdb(&tmp,c,"user") ; res->user = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; - resolve_find_cdb(&tmp,c,"inmodule") ; - res->inmodule = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; + resolve_find_cdb(&tmp,c,"inns") ; + res->inns = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; x = resolve_find_cdb(&tmp,c,"enabled") ; res->enabled = x ; diff --git a/src/lib66/service/service_resolve_write_cdb.c b/src/lib66/service/service_resolve_write_cdb.c index 8e9e92ff..c6f742ce 100644 --- a/src/lib66/service/service_resolve_write_cdb.c +++ b/src/lib66/service/service_resolve_write_cdb.c @@ -40,7 +40,7 @@ int service_resolve_write_cdb(cdbmaker *c, resolve_service_t *sres) !resolve_add_cdb_uint(c, "owner", sres->owner) || !resolve_add_cdb(c, "treename", str, sres->treename, 1) || !resolve_add_cdb(c, "user", str, sres->user, 1) || - !resolve_add_cdb(c, "inmodule", str, sres->inmodule, 1) || + !resolve_add_cdb(c, "inns", str, sres->inns, 1) || !resolve_add_cdb_uint(c, "enabled", sres->enabled) || // path -- GitLab