summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Wang <gwang@php.net>2019-11-21 17:58:16 -0500
committerGeorge Wang <gwang@php.net>2019-11-21 17:58:16 -0500
commite981f5af51bf2a16965aad68ae268021dc251c9c (patch)
tree42070d6896af567783481daa4e231dd7b63bcfb6
parentb4f501d5a421a0861a9464b9352b40927bbabd78 (diff)
parentc7141412ce4fba14dc33a8182cab7d84658ca613 (diff)
downloadphp-git-e981f5af51bf2a16965aad68ae268021dc251c9c.tar.gz
Merge branch 'PHP-7.2' into PHP-7.3
-rw-r--r--sapi/litespeed/lsapi_main.c40
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.