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