diff options
Diffstat (limited to 'WWW/Library/Implementation/HTTCP.c')
-rw-r--r-- | WWW/Library/Implementation/HTTCP.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/WWW/Library/Implementation/HTTCP.c b/WWW/Library/Implementation/HTTCP.c index 42821b4e..8733e997 100644 --- a/WWW/Library/Implementation/HTTCP.c +++ b/WWW/Library/Implementation/HTTCP.c @@ -20,6 +20,7 @@ #include <HTParse.h> #include <HTAlert.h> #include <HTTCP.h> +#include <LYGlobalDefs.h> /* added for no_suspend */ #include <LYUtils.h> #ifdef NSL_FORK @@ -480,6 +481,34 @@ PUBLIC int HTParseInet ARGS2( (void) signal(SIGTERM, quench); /* + ** Also make sure the child does not run one of the + ** signal handlers that may have been installed by + ** Lynx if one of those signals occurs. For example + ** we don't want the child to remove temp files on + ** ^C, let the parent deal with that. - kw + */ + (void) signal(SIGINT, quench); +#ifndef NOSIGHUP + (void) signal(SIGHUP, quench); +#endif /* NOSIGHUP */ +#ifdef SIGTSTP + if (no_suspend) + (void) signal(SIGTSTP, SIG_IGN); + else + (void) signal(SIGTSTP, SIG_DFL); +#endif /* SIGTSTP */ +#ifdef SIGWINCH + (void) signal(SIGWINCH, SIG_IGN); +#endif /* SIGWINCH */ +#ifndef __linux__ +#ifndef DOSPATH + signal(SIGBUS, SIG_DFL); +#endif /* DOSPATH */ +#endif /* !__linux__ */ + signal(SIGSEGV, SIG_DFL); + signal(SIGILL, SIG_DFL); + + /* ** Child won't use read side. -BL */ close(pfd[0]); |