From ca23988d60543dc6b946530efbf4a390d47302c5 Mon Sep 17 00:00:00 2001
From: obarun <eric@obarun.org>
Date: Tue, 30 Nov 2021 22:35:05 +1100
Subject: [PATCH] adapt to new sastr_dir_get function interface

---
 src/lib66/ss_environ.c       |  6 ++++--
 src/lib66/ss_resolve_graph.c |  7 +++++--
 src/lib66/ss_service.c       |  8 +++++---
 src/lib66/ss_utils.c         |  3 ++-
 src/lib66/ssexec_env.c       | 16 ++++++++++------
 src/lib66/ssexec_init.c      |  3 ++-
 6 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/src/lib66/ss_environ.c b/src/lib66/ss_environ.c
index ddfdd1af..5a94dd5b 100644
--- a/src/lib66/ss_environ.c
+++ b/src/lib66/ss_environ.c
@@ -314,7 +314,8 @@ int env_import_version_file(char const *svname, char const *svconf, char const *
     !env_append_version(&dst_ver,svconf,dversion))
         return 0 ;
 
-    if (!sastr_dir_get(&salist,src_ver.s,svname_dot,S_IFREG))
+    char const *exclude[2] = { svname_dot, 0 } ;
+    if (!sastr_dir_get(&salist,src_ver.s,exclude,S_IFREG))
         log_warnusys_return(LOG_EXIT_ZERO,"get configuration file from directory: ",src_ver.s) ;
 
     FOREACH_SASTR(&salist,pos) {
@@ -348,7 +349,8 @@ int env_import_version_file(char const *svname, char const *svconf, char const *
         salist.len = 0 ;
         pos = 0 ;
 
-        if (!sastr_dir_get(&salist,src_ver.s,"",S_IFDIR))
+        char const *exclude[1] = { 0 } ;
+        if (!sastr_dir_get(&salist,src_ver.s,exclude,S_IFDIR))
             log_warnusys_return(LOG_EXIT_ZERO,"get configuration directories from directory: ",src_ver.s) ;
 
         FOREACH_SASTR(&salist,pos) {
diff --git a/src/lib66/ss_resolve_graph.c b/src/lib66/ss_resolve_graph.c
index d022b301..277fe46b 100644
--- a/src/lib66/ss_resolve_graph.c
+++ b/src/lib66/ss_resolve_graph.c
@@ -190,6 +190,7 @@ int ss_resolve_graph_src(ss_resolve_graph_t *graph, char const *dir, unsigned in
     stralloc sa = STRALLOC_ZERO ;
     ss_resolve_t res = RESOLVE_ZERO ;
     size_t dirlen = strlen(dir), pos = 0 ;
+    char const *exclude[2] = { 0 } ;
 
     char solve[dirlen + SS_DB_LEN + SS_SRC_LEN + 1] ;
     memcpy(solve,dir,dirlen) ;
@@ -198,14 +199,16 @@ int ss_resolve_graph_src(ss_resolve_graph_t *graph, char const *dir, unsigned in
     {
         memcpy(solve + dirlen, SS_SVC, SS_SVC_LEN) ;
         solve[dirlen + SS_SVC_LEN] = 0 ;
-        if (!sastr_dir_get(&sa,solve,"",S_IFDIR)) goto err ;
+        if (!sastr_dir_get(&sa,solve,exclude,S_IFDIR)) goto err ;
     }
     if (what)
     {
         memcpy(solve + dirlen, SS_DB, SS_DB_LEN) ;
         memcpy(solve + dirlen + SS_DB_LEN, SS_SRC, SS_SRC_LEN) ;
         solve[dirlen + SS_DB_LEN + SS_SRC_LEN] = 0 ;
-        if (!sastr_dir_get(&sa,solve,SS_MASTER + 1,S_IFDIR)) goto err ;
+        exclude[0] = SS_MASTER + 1 ;
+        exclude[1] = 0 ;
+        if (!sastr_dir_get(&sa,solve,exclude,S_IFDIR)) goto err ;
     }
     for (;pos < sa.len; pos += strlen(sa.s + pos) + 1)
     {
diff --git a/src/lib66/ss_service.c b/src/lib66/ss_service.c
index cef23c9c..ab94fc42 100644
--- a/src/lib66/ss_service.c
+++ b/src/lib66/ss_service.c
@@ -1,5 +1,5 @@
 /*
- * ss_service.c
+ * service.c
  *
  * Copyright (c) 2018-2021 Eric Vidal <eric@obarun.org>
  *
@@ -40,6 +40,7 @@ int service_isenabled(char const *sv)
     ss_resolve_t res = RESOLVE_ZERO ;
     size_t newlen = 0, pos = 0 ;
     int e = -1 ;
+    char const *exclude[3] = { SS_BACKUP + 1, SS_RESOLVE + 1, 0 } ;
 
     if (!set_ownersysdir(&sa, getuid())) {
 
@@ -60,7 +61,7 @@ int service_isenabled(char const *sv)
     newlen = sa.len + SS_SYSTEM_LEN + 1 ;
     sa.len = 0 ;
 
-    if (!sastr_dir_get(&sa, tmp, SS_BACKUP + 1, S_IFDIR)) {
+    if (!sastr_dir_get(&sa, tmp, exclude, S_IFDIR)) {
 
         log_warnu("get list of trees from: ", tmp) ;
         goto freed ;
@@ -116,6 +117,7 @@ int service_isenabledat(stralloc *tree, char const *sv)
     ss_resolve_t res = RESOLVE_ZERO ;
     size_t newlen = 0, pos = 0 ;
     int e = -1 ;
+    char const *exclude[3] = { SS_BACKUP + 1, SS_RESOLVE + 1, 0 } ;
 
     if (!set_ownersysdir(&sa, getuid())) {
 
@@ -136,7 +138,7 @@ int service_isenabledat(stralloc *tree, char const *sv)
     newlen = sa.len + SS_SYSTEM_LEN + 1 ;
     sa.len = 0 ;
 
-    if (!sastr_dir_get(&sa, tmp, SS_BACKUP + 1, S_IFDIR)) {
+    if (!sastr_dir_get(&sa, tmp, exclude, S_IFDIR)) {
 
         log_warnu("get list of trees from: ", tmp) ;
         goto freed ;
diff --git a/src/lib66/ss_utils.c b/src/lib66/ss_utils.c
index abba2223..b1806421 100644
--- a/src/lib66/ss_utils.c
+++ b/src/lib66/ss_utils.c
@@ -359,11 +359,12 @@ int module_search_service(char const *src, genalloc *gares, char const *name,uin
     stralloc list = STRALLOC_ZERO ;
     stralloc tmp = STRALLOC_ZERO ;
     ss_resolve_t res = RESOLVE_ZERO ;
+    char const *exclude[2] = { SS_MASTER + 1, 0 } ;
 
     char t[srclen + SS_RESOLVE_LEN + 1] ;
     auto_strings(t,src,SS_RESOLVE) ;
 
-    if (!sastr_dir_get(&list,t,SS_MASTER+1,S_IFREG)) goto err ;
+    if (!sastr_dir_get(&list,t,exclude,S_IFREG)) goto err ;
 
     for (;pos < list.len ; pos += strlen(list.s + pos) + 1)
     {
diff --git a/src/lib66/ssexec_env.c b/src/lib66/ssexec_env.c
index 6223efd9..d383b8b9 100644
--- a/src/lib66/ssexec_env.c
+++ b/src/lib66/ssexec_env.c
@@ -357,9 +357,11 @@ int ssexec_env(int argc, char const *const *argv,char const *const *envp,ssexec_
     switch(todo)
     {
         case T_VLIST:
-
-            if (!sastr_dir_get(&satmp,svconf,SS_SYM_VERSION + 1,S_IFDIR))
-                log_dieu(LOG_EXIT_SYS,"get versioned directory of: ",svconf) ;
+            {
+                char const *exclude[2] = { SS_SYM_VERSION + 1, 0 } ;
+                if (!sastr_dir_get(&satmp,svconf,exclude,S_IFDIR))
+                    log_dieu(LOG_EXIT_SYS,"get versioned directory of: ",svconf) ;
+            }
             for (pos = 0 ; pos < satmp.len; pos += strlen(satmp.s + pos) + 1)
             {
                 if (buffer_puts(buffer_1, svconf) < 0)
@@ -377,9 +379,11 @@ int ssexec_env(int argc, char const *const *argv,char const *const *envp,ssexec_
             break ;
 
         case T_LIST:
-
-            if (!sastr_dir_get(&satmp,src,SS_SYM_VERSION + 1,S_IFREG))
-                log_dieu(LOG_EXIT_SYS,"get versioned directory at: ",src) ;
+            {
+                char const *exclude[2] = { SS_SYM_VERSION + 1, 0 } ;
+                if (!sastr_dir_get(&satmp,src,exclude,S_IFREG))
+                    log_dieu(LOG_EXIT_SYS,"get versioned directory at: ",src) ;
+            }
             for (pos = 0 ; pos < satmp.len; pos += strlen(satmp.s + pos) + 1)
             {
                 salist.len = 0 ;
diff --git a/src/lib66/ssexec_init.c b/src/lib66/ssexec_init.c
index 3a6bf157..bdb153fb 100644
--- a/src/lib66/ssexec_init.c
+++ b/src/lib66/ssexec_init.c
@@ -48,6 +48,7 @@ int ssexec_init(int argc, char const *const *argv,char const *const *envp,ssexec
     stralloc sasvc = STRALLOC_ZERO ;
     ss_resolve_t res = RESOLVE_ZERO ;
     ss_state_t sta = STATE_ZERO ;
+    char const *exclude[1] = { 0 } ;
 
     classic = db = earlier = 0 ;
 
@@ -92,7 +93,7 @@ int ssexec_init(int argc, char const *const *argv,char const *const *envp,ssexec
     /** svc already initiated? */
     if (classic)
     {
-        if (!sastr_dir_get(&sasvc,svdir,"",S_IFDIR)) log_dieusys(LOG_EXIT_SYS,"get classic services from: ",svdir) ;
+        if (!sastr_dir_get(&sasvc,svdir,exclude,S_IFDIR)) log_dieusys(LOG_EXIT_SYS,"get classic services from: ",svdir) ;
         if (!sasvc.len)
         {
             log_info("Initialization report: no classic services into tree: ",info->treename.s) ;
-- 
GitLab