diff options
author | Christian Ruppert <idl0r@gentoo.org> | 2010-04-26 22:29:03 +0200 |
---|---|---|
committer | Christian Ruppert <idl0r@gentoo.org> | 2010-04-26 22:29:03 +0200 |
commit | 2241cea76264ab3b466ac5ace8f683cfe6de20d4 (patch) | |
tree | 0db2375d48fd3491f4e8ba980698a50cd7fe41d1 | |
parent | Improve Makefile (diff) | |
download | fifo-cronolog-2241cea76264ab3b466ac5ace8f683cfe6de20d4.tar.gz fifo-cronolog-2241cea76264ab3b466ac5ace8f683cfe6de20d4.tar.bz2 fifo-cronolog-2241cea76264ab3b466ac5ace8f683cfe6de20d4.zip |
Clean up
Use tabs instead of spaces.
Fix nesting.
Add vim modeline.
-rw-r--r-- | squid-cronolog.c | 158 |
1 files changed, 80 insertions, 78 deletions
diff --git a/squid-cronolog.c b/squid-cronolog.c index bfc5346..58bd6a9 100644 --- a/squid-cronolog.c +++ b/squid-cronolog.c @@ -23,84 +23,86 @@ void die(int sig) { struct sigaction sigdie = { .sa_handler = die }; int main(int argc, char *argv[]) { + time_t t = 0; + pid_t pid = 0; + int fd, pidfd, pidlen = 16; + char *fifo, *log, pidstr[16]; - time_t t = 0; - pid_t pid = 0; - int fd, pidfd, pidlen = 16; - char *fifo, *log, pidstr[16]; - - if (argc != 4) { - fprintf(stderr, "Usage: %s /path/to/pidfile /path/to/fifo" - " /path/to/logs/%%Y%%m%%d.log\n", argv[0]); - exit(1); - } - - pidfile = argv[1]; - fifo = argv[2]; - log = argv[3]; - - /* Test for fifo access, leave open for use */ - /* O_NONBLOCK allows us to fork into the background */ - fd = open(fifo, O_RDONLY|O_NONBLOCK); - if (fd == -1) { - fprintf(stderr, "Cannot open fifo %s: %s\n", fifo, strerror(errno)); - exit(1); - } - - pid = fork(); - - if (pid == 0) { - /* CHILD 0 */ - - /* Record pid to pidfile */ - pidfd = open(pidfile, O_WRONLY|O_CREAT|O_EXCL, 0644); - if (pidfd == -1) { - fprintf(stderr, "Cannot create and open pid file %s: %s\n", - pidfile, strerror(errno)); - exit(1); - } else { - pidlen = snprintf(pidstr, pidlen, "%d\n", getpid()); - write(pidfd, pidstr, pidlen); - close(pidfd); - } - - /* close shell output */ - close(0); - close(1); - close(2); - - /* set a process group for easy cleanup */ - setpgrp(); - sigaction(SIGTERM, &sigdie, NULL); - - /* keep the cronolog process open */ - while (1) { - t = time(NULL); - pid = fork(); - if (pid == 0) { - /* CHILD 1 */ - - /* replace stdin with fifo */ - dup2(fd, 0); - /* unset O_NONBLOCK */ - fcntl(0, F_SETFL, 0); - /* exec cronolog */ - execl(CRONOLOG, CRONOLOG, log, (char *) 0); - /* filure! give up on life */ + if (argc != 4) { + fprintf(stderr, "Usage: %s /path/to/pidfile /path/to/fifo" + " /path/to/logs/%%Y%%m%%d.log\n", argv[0]); exit(1); - } else { - /* PARENT 1 */ - /* watch child 1 */ - waitpid(pid, NULL, 0); - if (time(NULL) - t < 2) { - /* restarting too fast, wait 10 seconds */ - sleep(10); - } - } - } - } - - /* PARENT 0 exits */ - close(fd); - return 0; + } + + pidfile = argv[1]; + fifo = argv[2]; + log = argv[3]; + + /* Test for fifo access, leave open for use */ + /* O_NONBLOCK allows us to fork into the background */ + fd = open(fifo, O_RDONLY|O_NONBLOCK); + if (fd == -1) { + fprintf(stderr, "Cannot open fifo %s: %s\n", fifo, strerror(errno)); + exit(1); + } + + pid = fork(); + + if (pid == 0) { + /* CHILD 0 */ + + /* Record pid to pidfile */ + pidfd = open(pidfile, O_WRONLY|O_CREAT|O_EXCL, 0644); + if (pidfd == -1) { + fprintf(stderr, "Cannot create and open pid file %s: %s\n", + pidfile, strerror(errno)); + exit(1); + } else { + pidlen = snprintf(pidstr, pidlen, "%d\n", getpid()); + write(pidfd, pidstr, pidlen); + close(pidfd); + } + + /* close shell output */ + close(0); + close(1); + close(2); + + /* set a process group for easy cleanup */ + setpgrp(); + sigaction(SIGTERM, &sigdie, NULL); + + /* keep the cronolog process open */ + while (1) { + t = time(NULL); + pid = fork(); + if (pid == 0) { + /* CHILD 1 */ + + /* replace stdin with fifo */ + dup2(fd, 0); + /* unset O_NONBLOCK */ + fcntl(0, F_SETFL, 0); + /* exec cronolog */ + execl(CRONOLOG, CRONOLOG, log, (char *) 0); + /* filure! give up on life */ + exit(1); + } else { + /* PARENT 1 */ + /* watch child 1 */ + waitpid(pid, NULL, 0); + if (time(NULL) - t < 2) { + /* restarting too fast, wait 10 seconds */ + sleep(10); + } + } + } + } + + /* PARENT 0 exits */ + close(fd); + + return 0; } + +/* vim: set ts=4 sw=4 tw=80: */ |