diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2020-11-30 18:49:48 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2020-11-30 18:49:48 +0200 |
commit | 23404fbf27b67bd1767998918548aee3235f201c (patch) | |
tree | d3557c6336910a53f9f8dc83568195e383d10b4d /libmailutils/server/acl.c | |
parent | 42e0f735b48ab0f05e80eeec335684b25a93c4a3 (diff) | |
download | mailutils-23404fbf27b67bd1767998918548aee3235f201c.tar.gz mailutils-23404fbf27b67bd1767998918548aee3235f201c.tar.bz2 |
New functions for closing all fds and daemonizing
* configure.ac: Select a suitable interface for closing all file
descriptors greater than or equal to a chosen one.
* include/mailutils/daemon.h (mu_daemon): New proto.
* include/mailutils/util.h (mu_close_fds): New proto.
* lib/daemon.c: Removed.
* lib/Makefile.am: Remove daemon.c
* libmailutils/base/Makefile.am: Add closefds.c
* libmailutils/base/closefds.c: New file.
* libmailutils/base/daemon.c: Rename to libmailutils/base/pidfile.c
* libmailutils/base/daemon.c: New file.
* libmailutils/diag/bt.c: Use mu_close_fds.
* libmailutils/server/acl.c: Likewise.
* mh/mh_whatnow.c: Likewise.
* libmailutils/stream/prog_stream.c: Likewise.
* libmailutils/server/msrv.c: Use mu_daemon.
* mh/send.c: Likewise.
* mda/lib/util.c (mda_close_fds): Remove.
Diffstat (limited to 'libmailutils/server/acl.c')
-rw-r--r-- | libmailutils/server/acl.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/libmailutils/server/acl.c b/libmailutils/server/acl.c index f209d6929..5f71d2bce 100644 --- a/libmailutils/server/acl.c +++ b/libmailutils/server/acl.c @@ -410,7 +410,6 @@ spawn_prog (const char *cmdline, int *pstatus, struct run_closure *rp) pid = fork (); if (pid == 0) { - int i; struct mu_wordsplit ws; if (mu_wordsplit (s, &ws, MU_WRDSF_DEFFLAGS)) @@ -419,9 +418,9 @@ spawn_prog (const char *cmdline, int *pstatus, struct run_closure *rp) mu_wordsplit_strerror (&ws)); _exit (127); } - - for (i = mu_getmaxfd (); i > 2; i--) - close (i); + + mu_close_fds (3); + execvp (ws.ws_wordv[0], ws.ws_wordv); _exit (127); } |