summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Wang <gwang@php.net>2019-11-21 17:57:50 -0500
committerGeorge Wang <gwang@php.net>2019-11-21 17:57:50 -0500
commitc7141412ce4fba14dc33a8182cab7d84658ca613 (patch)
tree06d147a252266129c6b84def34e99d429f3b1858
parent9b92c1d15415de0cdb14c8cf7b7575238ce380ca (diff)
downloadphp-git-c7141412ce4fba14dc33a8182cab7d84658ca613.tar.gz
Added environment LSAPI_CLEAN_SHUTDOWN to control clean shutdown. Update SAPI version to LiteSpeed v7.6 .
-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 8f02f15c32..5e31a50af9 100644
--- a/sapi/litespeed/lsapi_main.c
+++ b/sapi/litespeed/lsapi_main.c
@@ -621,7 +621,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 */
@@ -702,6 +702,8 @@ static void lsapi_sigsegv( int signal )
_exit(1);
}
+static int do_clean_shutdown = 1;
+
static int clean_onexit = 1;
@@ -777,18 +779,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;
@@ -1601,7 +1605,8 @@ int main( int argc, char * argv[] )
int iRequestsProcessed = 0;
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__)
@@ -1675,6 +1680,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.