From cb8008a322014a9639e0501c8b253d3525456598 Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Mon, 30 Oct 2023 20:23:16 +1100 Subject: [PATCH] remove logger supports --- src/include/66/svc.h | 2 +- src/lib66/svc/svc_unsupervise.c | 41 +++++++++++---------------------- 2 files changed, 14 insertions(+), 29 deletions(-) diff --git a/src/include/66/svc.h b/src/include/66/svc.h index 0c55293a..11d75484 100644 --- a/src/include/66/svc.h +++ b/src/include/66/svc.h @@ -55,7 +55,7 @@ extern int svc_compute_ns(resolve_service_t *res, uint8_t what, ssexec_t *info, extern int svc_scandir_ok (char const *dir) ; extern int svc_scandir_send(char const *scandir,char const *signal) ; extern int svc_send_wait(char const *const *list, unsigned int nservice, char **sig, unsigned int siglen, ssexec_t *info) ; -extern void svc_unsupervise(unsigned int *alist, unsigned int alen, graph_t *g, resolve_service_t *ares, unsigned int areslen) ; +extern void svc_unsupervise(unsigned int *alist, unsigned int alen, graph_t *g, resolve_service_t *ares, unsigned int areslen, ssexec_t *info) ; extern void svc_send_fdholder(char const *socket, char const *signal) ; #endif diff --git a/src/lib66/svc/svc_unsupervise.c b/src/lib66/svc/svc_unsupervise.c index b9da67ff..0b96d8e9 100644 --- a/src/lib66/svc/svc_unsupervise.c +++ b/src/lib66/svc/svc_unsupervise.c @@ -15,54 +15,42 @@ #include <oblibs/log.h> #include <oblibs/sastr.h> -#include <skalibs/genalloc.h> - #include <66/state.h> #include <66/sanitize.h> #include <66/graph.h> #include <66/svc.h> #include <66/enum.h> +#include <66/symlink.h> +#include <66/constants.h> static void sanitize_it(resolve_service_t *res) { log_flow() ; - - ss_state_t sta = STATE_ZERO ; - sanitize_fdholder(res, STATE_FLAGS_FALSE) ; + ss_state_t sta = STATE_ZERO ; if (!state_read(&sta, res)) log_dieu(LOG_EXIT_SYS, "read state file of: ", res->sa.s + res->name) ; + sanitize_fdholder(res, &sta, STATE_FLAGS_FALSE) ; + state_set_flag(&sta, STATE_FLAGS_TOUNSUPERVISE, STATE_FLAGS_TRUE) ; state_set_flag(&sta, STATE_FLAGS_ISUP, STATE_FLAGS_FALSE) ; - if (!state_write(&sta, res)) - log_dieu(LOG_EXIT_SYS, "write state file of: ", res->sa.s + res->name) ; - - sanitize_scandir(res) ; - sanitize_livestate(res) ; + sanitize_scandir(res, &sta) ; - log_info("Unsupervised successfully: ", res->sa.s + res->name) ; -} - -static void unsupervise_logger(unsigned int idx, resolve_service_t *ares, unsigned int areslen) -{ - log_flow() ; + state_set_flag(&sta, STATE_FLAGS_TOUNSUPERVISE, STATE_FLAGS_TRUE) ; - if (ares[idx].logger.want && ares[idx].type == TYPE_CLASSIC) { + sanitize_livestate(res, &sta) ; - char *name = ares[idx].sa.s + ares[idx].logger.name ; - int aresid = service_resolve_array_search(ares, areslen, name) ; - if (aresid < 0) - log_dieu(LOG_EXIT_SYS,"find ares id of: ", name, " -- please make a bug reports") ; + if (!symlink_switch(res, SYMLINK_SOURCE)) + log_dieusys(LOG_EXIT_SYS, "switch service symlink to source for: ", res->sa.s + res->name) ; - sanitize_it(&ares[aresid]) ; - } + log_info("Unsupervised successfully: ", res->sa.s + res->name) ; } -/** this function considers that the service is already down */ -void svc_unsupervise(unsigned int *alist, unsigned int alen, graph_t *g, resolve_service_t *ares, unsigned int areslen) +/** this function considers that the service is already down except for the logger */ +void svc_unsupervise(unsigned int *alist, unsigned int alen, graph_t *g, resolve_service_t *ares, unsigned int areslen, ssexec_t *info) { log_flow() ; @@ -83,8 +71,6 @@ void svc_unsupervise(unsigned int *alist, unsigned int alen, graph_t *g, resolve sanitize_it(&ares[aresid]) ; - unsupervise_logger(aresid, ares, areslen) ; - if ((ares[aresid].type == TYPE_BUNDLE || ares[aresid].type == TYPE_MODULE) && ares[aresid].dependencies.ncontents) { sa.len = 0, bpos = 0 ; @@ -102,7 +88,6 @@ void svc_unsupervise(unsigned int *alist, unsigned int alen, graph_t *g, resolve } } } - stralloc_free(&sa) ; } -- GitLab