diff options
author | David Oberhollenzer <goliath@infraroot.at> | 2020-03-31 18:19:27 +0200 |
---|---|---|
committer | David Oberhollenzer <goliath@infraroot.at> | 2020-03-31 18:19:27 +0200 |
commit | 87a524d9313428d55e5a04c2538042629bdc467a (patch) | |
tree | 37d513ffcb56666d6993bc27096144896cedfc32 /lib/util | |
parent | 9f9807d4d3e0ecabc9bb67658d58644d714a9fd7 (diff) |
cleanup: delete remains of libutil
- exec_t belongs to service.h, the main place where it is used/needed
- code for executing exec_t is moved to runsvc for the same reason
- what is left are NORETURN and ARRAY_SIZE
- the former can be replaced with direct attribute usage since
the only relevant compilers all support the attribute.
- the later is only used in 3 places and can be trivially replaced
with direct usage of sizeof().
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
Diffstat (limited to 'lib/util')
-rw-r--r-- | lib/util/argv_exec.c | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/lib/util/argv_exec.c b/lib/util/argv_exec.c deleted file mode 100644 index d39b35a..0000000 --- a/lib/util/argv_exec.c +++ /dev/null @@ -1,51 +0,0 @@ -/* SPDX-License-Identifier: ISC */ -#include "service.h" - -#include <stdlib.h> -#include <unistd.h> -#include <string.h> -#include <fcntl.h> -#include <stdio.h> - -int setup_tty(const char *tty, bool truncate) -{ - int fd; - - if (tty == NULL) - return 0; - - fd = open(tty, O_RDWR); - if (fd < 0) { - perror(tty); - return -1; - } - - if (truncate) - ftruncate(fd, 0); - - close(STDIN_FILENO); - close(STDOUT_FILENO); - close(STDERR_FILENO); - - setsid(); - - dup2(fd, STDIN_FILENO); - dup2(fd, STDOUT_FILENO); - dup2(fd, STDERR_FILENO); - close(fd); - return 0; -} - -void argv_exec(exec_t *e) -{ - char **argv = alloca(sizeof(char *) * (e->argc + 1)), *ptr; - int i; - - for (ptr = e->args, i = 0; i < e->argc; ++i, ptr += strlen(ptr) + 1) - argv[i] = ptr; - - argv[i] = NULL; - execvp(argv[0], argv); - perror(argv[0]); - exit(EXIT_FAILURE); -} |