diff --git a/src/lib66/ss_environ.c b/src/lib66/ss_environ.c index ddfdd1af38c420cf5628259950150bdade527c11..5a94dd5b82eef8a644f6e2d7d1fa4e6e38b51e74 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 d022b30117285c4f9e22936eba7d83564b9b21f2..277fe46b30432646003bc794ef2cc37a92471fd1 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 cef23c9c7e9ec918bce7646365f638b5a7eca48d..ab94fc4227d1fa7438c28cfa23668808a0a900b9 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 abba2223801a8f9aeaa75329d1c8e798cd945976..b18064217304218f12642d84043d3afc83f3a697 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 6223efd9b3533d348b262c45047b33c184c10936..d383b8b907694ae1f56eefab4958e13e85c94fa2 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 3a6bf157a92724b04d53dc002d94ad8cd8f25358..bdb153fbb210a5ba05ec9993cdcfa5261db7340f 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) ;