summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Wang <gwang@php.net>2019-11-21 17:58:44 -0500
committerGeorge Wang <gwang@php.net>2019-11-21 17:58:44 -0500
commit99b8e67615159fc600a615e1e97f2d1cf18f14cb (patch)
tree049f97571227ebc9f13ba978cdba7e5efdff022a
parentb78ec58f0919aca0c136ad6200ab2a8742c3dadf (diff)
parente981f5af51bf2a16965aad68ae268021dc251c9c (diff)
downloadphp-git-99b8e67615159fc600a615e1e97f2d1cf18f14cb.tar.gz
Merge branch 'PHP-7.3' into PHP-7.4
-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 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.