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