show error/warning on fork failure - geomyidae - A small C-based gopherd.
HTML git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/
DIR Log
DIR Files
DIR Refs
DIR Tags
DIR README
DIR LICENSE
---
DIR commit 60e5e4b10104014295dd9c9867900f4c72a8cffe
DIR parent 50fd214b77643c6291a45132706cab4bfba6db7e
HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sat, 23 Sep 2017 13:05:07 +0200
show error/warning on fork failure
this can be useful if there are process resource constraints set also.
Signed-off-by: Christoph Lohmann <20h@r-36.net>
Diffstat:
M handlr.c | 2 ++
M main.c | 11 +++++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
---
DIR diff --git a/handlr.c b/handlr.c
@@ -169,6 +169,7 @@ handlecgi(int sock, char *file, char *port, char *base, char *args,
_exit(1);
}
case -1:
+ perror("fork");
break;
default:
wait(NULL);
@@ -227,6 +228,7 @@ handledcgi(int sock, char *file, char *port, char *base, char *args,
_exit(1);
}
case -1:
+ perror("fork");
break;
default:
dup2(sock, 1);
DIR diff --git a/main.c b/main.c
@@ -401,8 +401,15 @@ main(int argc, char *argv[])
}
}
- if(dofork && fork() != 0)
- return 0;
+ if(dofork) {
+ switch(fork()) {
+ case -1:
+ perror("fork");
+ return 1;
+ default:
+ return 0;
+ }
+ }
if(logfile != nil) {
glfd = initlogging(logfile);