Skip to content
Snippets Groups Projects
Commit 814138a4 authored by Eric Vidal's avatar Eric Vidal :speech_balloon:
Browse files

split the exitcode of resolve_read_g function.

parent 0ba254ec
No related branches found
No related tags found
No related merge requests found
......@@ -16,6 +16,7 @@
#include <oblibs/log.h>
#include <oblibs/string.h>
#include <oblibs/types.h>
#include <66/resolve.h>
......@@ -29,12 +30,15 @@ int resolve_read_g(resolve_wrapper_t *wres, char const *src, char const *name)
char tmp[srclen + SS_RESOLVE_LEN + 1 + namelen + 1] ;
auto_strings(tmp,src,SS_RESOLVE,"/",name) ;
r = scan_mode(tmp,S_IFREG) ;
if (r <= 0)
log_warnusys_return(LOG_EXIT_ZERO,"found resolve file: ", tmp) ;
int r = scan_mode(tmp,S_IFREG) ;
if (r < 0)
return -1 ;
if (!resolve_read_cdb(wres,tmp))
if (!r)
return 0 ;
if (!resolve_read_cdb(wres,tmp))
return -1 ;
return 1 ;
}
......@@ -39,7 +39,7 @@ int service_isenabled(char const *sv)
resolve_service_t res = RESOLVE_SERVICE_ZERO ;
resolve_wrapper_t_ref wres = resolve_set_struct(DATA_SERVICE, &res) ;
size_t newlen = 0, pos = 0 ;
int e = -1 ;
int e = -1, r ;
char const *exclude[3] = { SS_BACKUP + 1, SS_RESOLVE + 1, 0 } ;
if (!set_ownersysdir(&sa, getuid())) {
......@@ -74,13 +74,15 @@ int service_isenabled(char const *sv)
char trees[newlen + strlen(treename) + SS_SVDIRS_LEN + 1] ;
auto_strings(trees, tmp, treename, SS_SVDIRS) ;
if (resolve_check(trees, sv)) {
r = resolve_read_g(wres, trees, sv) ;
if (!resolve_read(wres, trees, sv)) {
if (r < 0) {
log_warnu("read resolve file: ", trees, "/", sv) ;
goto freed ;
}
log_warnu("read resolve file: ", trees, "/", sv) ;
e = -1 ;
goto freed ;
} else if (r) {
if (res.disen) {
......@@ -91,6 +93,7 @@ int service_isenabled(char const *sv)
} else {
log_trace(sv, " disabled at tree: ", treename) ;
e = 2 ;
goto freed ;
}
......
......@@ -39,7 +39,7 @@ int service_isenabledat(stralloc *tree, char const *sv)
resolve_service_t res = RESOLVE_SERVICE_ZERO ;
resolve_wrapper_t_ref wres = resolve_set_struct(DATA_SERVICE, &res) ;
size_t newlen = 0, pos = 0 ;
int e = -1 ;
int e = -1, r ;
char const *exclude[3] = { SS_BACKUP + 1, SS_RESOLVE + 1, 0 } ;
if (!set_ownersysdir(&sa, getuid())) {
......@@ -74,13 +74,16 @@ int service_isenabledat(stralloc *tree, char const *sv)
char trees[newlen + strlen(treename) + SS_SVDIRS_LEN + 1] ;
auto_strings(trees, tmp, treename, SS_SVDIRS) ;
if (resolve_check(trees, sv)) {
if (!resolve_read(wres, trees, sv)) {
r = resolve_read_g(wres, trees, sv) ;
log_warnu("read resolve file: ", trees, "/", sv) ;
goto freed ;
}
if (r < 0) {
log_warnu("read resolve file: ", trees, "/", sv) ;
e = -1 ;
goto freed ;
} else if (r) {
if (res.disen) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment