diff options
author | George Wang <gwang@php.net> | 2019-11-21 17:58:44 -0500 |
---|---|---|
committer | George Wang <gwang@php.net> | 2019-11-21 17:58:44 -0500 |
commit | 99b8e67615159fc600a615e1e97f2d1cf18f14cb (patch) | |
tree | 049f97571227ebc9f13ba978cdba7e5efdff022a | |
parent | b78ec58f0919aca0c136ad6200ab2a8742c3dadf (diff) | |
parent | e981f5af51bf2a16965aad68ae268021dc251c9c (diff) | |
download | php-git-99b8e67615159fc600a615e1e97f2d1cf18f14cb.tar.gz |
Merge branch 'PHP-7.3' into PHP-7.4
-rw-r--r-- | sapi/litespeed/lsapi_main.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/sapi/litespeed/lsapi_main.c b/sapi/litespeed/lsapi_main.c index f7d4b1a84c..772b642173 100644 --- a/sapi/litespeed/lsapi_main.c +++ b/sapi/litespeed/lsapi_main.c @@ -603,7 +603,7 @@ static int sapi_lsapi_activate() static sapi_module_struct lsapi_sapi_module = { "litespeed", - "LiteSpeed V7.5", + "LiteSpeed V7.6", php_lsapi_startup, /* startup */ php_module_shutdown_wrapper, /* shutdown */ @@ -680,6 +680,8 @@ static void lsapi_sigsegv( int signal ) _exit(1); } +static int do_clean_shutdown = 1; + static int clean_onexit = 1; @@ -755,18 +757,20 @@ static int lsapi_module_main(int show_source) return -1; } - sigemptyset(&act.sa_mask); - act.sa_flags = SA_NODEFER; - act.sa_handler = lsapi_sigterm; - sa_rc = sigaction( SIGINT, &act, NULL); - sa_rc = sigaction( SIGQUIT, &act, NULL); - sa_rc = sigaction( SIGILL, &act, NULL); - sa_rc = sigaction( SIGABRT, &act, NULL); - sa_rc = sigaction( SIGBUS, &act, NULL); - sa_rc = sigaction( SIGSEGV, &act, NULL); - sa_rc = sigaction( SIGTERM, &act, NULL); - - clean_onexit = 0; + if (do_clean_shutdown) { + sigemptyset(&act.sa_mask); + act.sa_flags = SA_NODEFER; + act.sa_handler = lsapi_sigterm; + sa_rc = sigaction( SIGINT, &act, NULL); + sa_rc = sigaction( SIGQUIT, &act, NULL); + sa_rc = sigaction( SIGILL, &act, NULL); + sa_rc = sigaction( SIGABRT, &act, NULL); + sa_rc = sigaction( SIGBUS, &act, NULL); + sa_rc = sigaction( SIGSEGV, &act, NULL); + sa_rc = sigaction( SIGTERM, &act, NULL); + + clean_onexit = 0; + } if (show_source) { zend_syntax_highlighter_ini syntax_highlighter_ini; @@ -1569,7 +1573,8 @@ int main( int argc, char * argv[] ) int result; - atexit(lsapi_atexit); + if (do_clean_shutdown) + atexit(lsapi_atexit); while( ( result = LSAPI_Prefork_Accept_r( &g_req )) >= 0 ) { #if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) @@ -1643,6 +1648,13 @@ static PHP_MINIT_FUNCTION(litespeed) if (p && 0 == strcasecmp(p, "on")) parse_user_ini = 1; + p = getenv("LSAPI_CLEAN_SHUTDOWN"); + if (p) { + if (*p == '1' || 0 == strcasecmp(p, "on")) + do_clean_shutdown = 1; + else if (*p == '0' || 0 == strcasecmp(p, "off")) + do_clean_shutdown = 0; + } /* * mod_lsapi always sets this env var, * so we can detect mod_lsapi mode with its presense. |