diff --git a/src/include/66/svc.h b/src/include/66/svc.h index 99731c19e4e4404ee9f116ac8d81f9d00603d367..0c55293a266e47cbc57575cbf46eca0a2f830855 100644 --- a/src/include/66/svc.h +++ b/src/include/66/svc.h @@ -56,6 +56,6 @@ 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_send_fdholder(char const *socket) ; +extern void svc_send_fdholder(char const *socket, char const *signal) ; #endif diff --git a/src/lib66/sanitize/sanitize_fdholder.c b/src/lib66/sanitize/sanitize_fdholder.c index 57baaaa08a0ef173daa35851dc640c6edba90305..4c7fd7c0d7a048799da0b48c03a8bd45e296b683 100644 --- a/src/lib66/sanitize/sanitize_fdholder.c +++ b/src/lib66/sanitize/sanitize_fdholder.c @@ -170,7 +170,7 @@ void sanitize_fdholder(resolve_service_t *res, uint32_t flag) if (!openwritenclose_unsafe(file, list.s, list.len)) log_dieusys(LOG_EXIT_SYS, "write file: ", file) ; - svc_send_fdholder(socket) ; + svc_send_fdholder(socket, "twR") ; stralloc_free(&list) ; } diff --git a/src/lib66/svc/svc_send_fdholder.c b/src/lib66/svc/svc_send_fdholder.c index 63124b8e9c2158d8d4730dc6d429daaaed8a5701..95179c2b1341343b7d515987773706900edf58df 100644 --- a/src/lib66/svc/svc_send_fdholder.c +++ b/src/lib66/svc/svc_send_fdholder.c @@ -15,14 +15,14 @@ #include <stdlib.h> #include <oblibs/log.h> +#include <oblibs/string.h> #include <skalibs/types.h> #include <skalibs/djbunix.h> #include <66/svc.h> - -void svc_send_fdholder(char const *socket) +void svc_send_fdholder(char const *socket, char const *signal) { log_flow() ; @@ -33,16 +33,18 @@ void svc_send_fdholder(char const *socket) char const *newargv[8] ; unsigned int m = 0 ; + char sig[1 + strlen(signal) + 1] ; + auto_strings(sig, "-", signal) ; newargv[m++] = "s6-svc" ; - newargv[m++] = "-twR" ; + newargv[m++] = sig ; newargv[m++] = "-T" ; newargv[m++] = tfmt ; newargv[m++] = "--" ; newargv[m++] = socket ; newargv[m++] = 0 ; - log_trace("sending -twR signal to: ", socket) ; + log_trace("sending -", signal, " signal to: ", socket) ; pid = child_spawn0(newargv[0], newargv, (char const *const *) environ) ;