Mercurial > masqmail
diff src/child.c @ 10:26e34ae9a3e3
changed indention and line wrapping to a more consistent style
author | meillo@marmaro.de |
---|---|
date | Mon, 27 Oct 2008 16:23:10 +0100 |
parents | 08114f7dcc23 |
children | 98cda87105a7 |
line wrap: on
line diff
--- a/src/child.c Mon Oct 27 16:21:27 2008 +0100 +++ b/src/child.c Mon Oct 27 16:23:10 2008 +0100 @@ -4,7 +4,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -29,51 +29,51 @@ int volatile sigchild_seen = 0; -static -void sigchild_handler(int sig) +static void +sigchild_handler(int sig) { - sigchild_seen = 1; - signal(SIGHUP, sigchild_handler); + sigchild_seen = 1; + signal(SIGHUP, sigchild_handler); } -int child(const char *command) +int +child(const char *command) { - int pipe[2]; + int pipe[2]; + + if (socketpair(AF_UNIX, SOCK_STREAM, 0, pipe) == 0) { + pid_t pid; - if (socketpair(AF_UNIX, SOCK_STREAM, 0, pipe) == 0){ - pid_t pid; - - /* - sigchild_seen = 0; - signal(SIGCHLD, sigchild_handler); - */ + /* + sigchild_seen = 0; + signal(SIGCHLD, sigchild_handler); + */ - pid = fork(); - if(pid == 0){ - int i, max_fd = sysconf(_SC_OPEN_MAX); - /* child */ - dup2(pipe[0], 0); - dup2(pipe[0], 1); - dup2(pipe[0], 2); + pid = fork(); + if (pid == 0) { + int i, max_fd = sysconf(_SC_OPEN_MAX); + /* child */ + dup2(pipe[0], 0); + dup2(pipe[0], 1); + dup2(pipe[0], 2); - if(max_fd <= 0) max_fd = 64; - for(i = 3; i < max_fd; i++) - close(i); + if (max_fd <= 0) + max_fd = 64; + for (i = 3; i < max_fd; i++) + close(i); - { - char *argv [] = { "/bin/sh", "-c", (char*) command, NULL }; - execve (*argv, argv, NULL); - } - logwrite(LOG_ALERT, "execve failed: %s\n", strerror(errno)); - _exit(EXIT_FAILURE); - }else if(pid == -1){ - return -1; - }else{ - close(pipe[0]); - return pipe[1]; - } - } - return -2; + { + char *argv[] = { "/bin/sh", "-c", (char *) command, NULL }; + execve(*argv, argv, NULL); + } + logwrite(LOG_ALERT, "execve failed: %s\n", strerror(errno)); + _exit(EXIT_FAILURE); + } else if (pid == -1) { + return -1; + } else { + close(pipe[0]); + return pipe[1]; + } + } + return -2; } - -