summaryrefslogtreecommitdiff
path: root/src/libstddjb/child_spawn2.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2024-04-30 19:09:43 +0000
committerLaurent Bercot <ska@appnovation.com>2024-04-30 19:09:43 +0000
commit02926ee3447b1ea0d04b53b8fcb08d8b1a4deec5 (patch)
treef0cffb716e9ba61382795b460203df506e13ed4b /src/libstddjb/child_spawn2.c
parent944a9d260a41b30f32730ccb12b3f5dafb507b7d (diff)
downloadskalibs-02926ee3447b1ea0d04b53b8fcb08d8b1a4deec5.tar.xz
Add mspawn functions to cspawn.h; move everything to libenvexec
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/libstddjb/child_spawn2.c')
-rw-r--r--src/libstddjb/child_spawn2.c39
1 files changed, 0 insertions, 39 deletions
diff --git a/src/libstddjb/child_spawn2.c b/src/libstddjb/child_spawn2.c
deleted file mode 100644
index f287c0b..0000000
--- a/src/libstddjb/child_spawn2.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* ISC license. */
-
-#include <unistd.h>
-
-#include <skalibs/djbunix.h>
-#include <skalibs/cspawn.h>
-
-pid_t child_spawn2 (char const *prog, char const *const *argv, char const *const *envp, int *fds)
-{
- pid_t pid ;
- int p[2][2] ;
- if (pipe(p[0]) == -1) return 0 ;
- if (ndelay_on(p[0][0]) == -1 || coe(p[0][0]) == -1 || pipe(p[1]) == -1) goto errp ;
- if (ndelay_on(p[1][1]) == -1 || coe(p[1][1]) == -1) goto err ;
-
- {
- cspawn_fileaction fa[2] =
- {
- [0] = { .type = CSPAWN_FA_MOVE, .x = { .fd2 = { [0] = fds[0], [1] = p[1][0] } } },
- [1] = { .type = CSPAWN_FA_MOVE, .x = { .fd2 = { [0] = fds[1], [1] = p[0][1] } } }
- } ;
- pid = cspawn(prog, argv, envp, CSPAWN_FLAGS_SIGBLOCKNONE, fa, 2) ;
- if (!pid) goto err ;
- }
-
- fd_close(p[0][1]) ;
- fd_close(p[1][0]) ;
- fds[0] = p[0][0] ;
- fds[1] = p[1][1] ;
- return pid ;
-
- err:
- fd_close(p[1][1]) ;
- fd_close(p[1][0]) ;
- errp:
- fd_close(p[0][1]) ;
- fd_close(p[0][0]) ;
- return 0 ;
-}