From 16edfb1a2bd0b7fa793618b8e5953e92e253a955 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Mon, 11 Sep 2023 06:24:20 +0000 Subject: Remove s6-tcpserver?d dependency on libs6 Signed-off-by: Laurent Bercot --- src/conn-tools/deps-exe/s6-tcpserver4d | 1 - src/conn-tools/deps-exe/s6-tcpserver6d | 1 - src/conn-tools/s6-tcpserver4d.c | 14 +++++++++++--- src/conn-tools/s6-tcpserver6d.c | 14 +++++++++++--- 4 files changed, 22 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/conn-tools/deps-exe/s6-tcpserver4d b/src/conn-tools/deps-exe/s6-tcpserver4d index 062999f..19869b2 100644 --- a/src/conn-tools/deps-exe/s6-tcpserver4d +++ b/src/conn-tools/deps-exe/s6-tcpserver4d @@ -1,3 +1,2 @@ --ls6 -lskarnet ${SOCKET_LIB} diff --git a/src/conn-tools/deps-exe/s6-tcpserver6d b/src/conn-tools/deps-exe/s6-tcpserver6d index 062999f..19869b2 100644 --- a/src/conn-tools/deps-exe/s6-tcpserver6d +++ b/src/conn-tools/deps-exe/s6-tcpserver6d @@ -1,3 +1,2 @@ --ls6 -lskarnet ${SOCKET_LIB} diff --git a/src/conn-tools/s6-tcpserver4d.c b/src/conn-tools/s6-tcpserver4d.c index 8dd6614..5982816 100644 --- a/src/conn-tools/s6-tcpserver4d.c +++ b/src/conn-tools/s6-tcpserver4d.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -27,8 +28,6 @@ #include #include -#include - #define ABSOLUTE_MAXCONN 16384 #define USAGE "s6-tcpserver4d [ -v verbosity ] [ -1 ] [ -c maxconn ] [ -C localmaxconn ] prog..." @@ -257,7 +256,16 @@ static inline void new_connection (int s, uint32_t ip, uint16_t port, char const memcpy(fmt + m, "TCPCONNNUM=", 11) ; m += 11 ; m += uint_fmt(fmt + m, num) ; fmt[m++] = 0 ; - pid = s6_ucspiserver_spawn(s, argv, envp, envlen, fmt, m, 4) ; + { + cspawn_fileaction fa[2] = + { + [0] = { .type = CSPAWN_FA_MOVE, .x = { .fd2 = { [0] = 0, [1] = s } } }, + [1] = { .type = CSPAWN_FA_COPY, .x = { .fd2 = { [0] = 1, [1] = 0 } } } + } ; + char const *newenvp[envlen + 5] ; + env_mergen(newenvp, envlen + 5, envp, envlen, fmt, m, 4) ; + pid = cspawn(argv[0], argv, newenvp, CSPAWN_FLAGS_SELFPIPE_FINISH, fa, 2) ; + } if (!pid) { if (verbosity) strerr_warnwu2sys("spawn ", argv[0]) ; diff --git a/src/conn-tools/s6-tcpserver6d.c b/src/conn-tools/s6-tcpserver6d.c index e3c66bd..4168d91 100644 --- a/src/conn-tools/s6-tcpserver6d.c +++ b/src/conn-tools/s6-tcpserver6d.c @@ -16,14 +16,13 @@ #include #include #include +#include #include #include #include #include #include -#include - #define ABSOLUTE_MAXCONN 16384 #define USAGE "s6-tcpserver6d [ -v verbosity ] [ -1 ] [ -c maxconn ] [ -C localmaxconn ] prog..." @@ -230,7 +229,16 @@ static inline void new_connection (int s, char const *ip, uint16_t port, char co memcpy(fmt + m, "TCPCONNNUM=", 11) ; m += 11 ; m += uint_fmt(fmt + m, num) ; fmt[m++] = 0 ; - pid = s6_ucspiserver_spawn(s, argv, envp, envlen, fmt, m, 4) ; + { + cspawn_fileaction fa[2] = + { + [0] = { .type = CSPAWN_FA_MOVE, .x = { .fd2 = { [0] = 0, [1] = s } } }, + [1] = { .type = CSPAWN_FA_COPY, .x = { .fd2 = { [0] = 1, [1] = 0 } } } + } ; + char const *newenvp[envlen + 5] ; + env_mergen(newenvp, envlen + 5, envp, envlen, fmt, m, 4) ; + pid = cspawn(argv[0], argv, newenvp, CSPAWN_FLAGS_SELFPIPE_FINISH, fa, 2) ; + } if (!pid) { if (verbosity) strerr_warnwu2sys("spawn ", argv[0]) ; -- cgit v1.2.3