| 6819 | } |
| 6820 | |
| 6821 | void setupSignalHandlers(void) { |
| 6822 | struct sigaction act; |
| 6823 | |
| 6824 | /* When the SA_SIGINFO flag is set in sa_flags then sa_sigaction is used. |
| 6825 | * Otherwise, sa_handler is used. */ |
| 6826 | sigemptyset(&act.sa_mask); |
| 6827 | act.sa_flags = 0; |
| 6828 | act.sa_handler = sigShutdownHandler; |
| 6829 | sigaction(SIGTERM, &act, NULL); |
| 6830 | sigaction(SIGINT, &act, NULL); |
| 6831 | |
| 6832 | sigemptyset(&act.sa_mask); |
| 6833 | act.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; |
| 6834 | act.sa_sigaction = sigsegvHandler; |
| 6835 | if(g_pserver->crashlog_enabled) { |
| 6836 | sigaction(SIGSEGV, &act, NULL); |
| 6837 | sigaction(SIGBUS, &act, NULL); |
| 6838 | sigaction(SIGFPE, &act, NULL); |
| 6839 | sigaction(SIGILL, &act, NULL); |
| 6840 | sigaction(SIGABRT, &act, NULL); |
| 6841 | } |
| 6842 | return; |
| 6843 | } |
| 6844 | |
| 6845 | void removeSignalHandlers(void) { |
| 6846 | struct sigaction act; |
no test coverage detected