commit 4a28dd014ac9a135b84902a0424aed8abbc68cb2 from: Omar Polo date: Mon Dec 28 08:55:56 2020 UTC ignore also SIGHUP SIGHUP is sent when the tty is detached and by default kills the process. When we run in the background we don't care anymore about the tty, so it should be safe for us to ignore SIGHUP. (frankly, I expected daemon(3) to do stuff like this for us). commit - 5a40216f37fc6b40a0861c685f9903f1a8bbb645 commit + 4a28dd014ac9a135b84902a0424aed8abbc68cb2 blob - e4ed9f743cc943c005815bac1cf68e1a0fed8192 blob + 1f96c7db0550c42447efd4f2524b4b7f4dbb0c83 --- gmid.c +++ gmid.c @@ -57,7 +57,7 @@ struct etm { /* file extension to mime */ }; void -siginfo_handler(int sig) +sig_handler(int sig) { (void)sig; } @@ -785,15 +785,6 @@ main(int argc, char **argv) struct tls *ctx = NULL; struct tls_config *conf; int sock, ch; - - signal(SIGPIPE, SIG_IGN); - signal(SIGCHLD, SIG_IGN); - -#ifdef SIGINFO - signal(SIGINFO, siginfo_handler); -#endif - signal(SIGUSR2, siginfo_handler); - connected_clients = 0; if ((dir = absolutify_path("docs")) == NULL) @@ -851,6 +842,17 @@ main(int argc, char **argv) } } + signal(SIGPIPE, SIG_IGN); + signal(SIGCHLD, SIG_IGN); + +#ifdef SIGINFO + signal(SIGINFO, sig_handler); +#endif + signal(SIGUSR2, sig_handler); + + if (!foreground) + signal(SIGHUP, SIG_IGN); + if ((conf = tls_config_new()) == NULL) err(1, "tls_config_new"); blob - 99cd791e608eddf3c3c50fd9cb8ea822223d126d blob + 963a5bb73a43c7135f532ac0c5be60c2946974cc --- gmid.h +++ gmid.h @@ -125,7 +125,7 @@ enum { }; /* gmid.c */ -void siginfo_handler(int); +void sig_handler(int); int starts_with(const char*, const char*); ssize_t filesize(int);