diff options
author | George Wang <gwang@php.net> | 2019-11-21 17:58:16 -0500 |
---|---|---|
committer | George Wang <gwang@php.net> | 2019-11-21 17:58:16 -0500 |
commit | e981f5af51bf2a16965aad68ae268021dc251c9c (patch) | |
tree | 42070d6896af567783481daa4e231dd7b63bcfb6 | |
parent | b4f501d5a421a0861a9464b9352b40927bbabd78 (diff) | |
parent | c7141412ce4fba14dc33a8182cab7d84658ca613 (diff) | |
download | php-git-e981f5af51bf2a16965aad68ae268021dc251c9c.tar.gz |
Merge branch 'PHP-7.2' into PHP-7.3
-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 d3ac79eb7b..c7548b5e83 100644 --- a/sapi/litespeed/lsapi_main.c +++ b/sapi/litespeed/lsapi_main.c @@ -610,7 +610,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 */ @@ -691,6 +691,8 @@ static void lsapi_sigsegv( int signal ) _exit(1); } +static int do_clean_shutdown = 1; + static int clean_onexit = 1; @@ -766,18 +768,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; @@ -1585,7 +1589,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__) @@ -1659,6 +1664,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. |