diff options
-rw-r--r-- | ext/session/session.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/ext/session/session.c b/ext/session/session.c index c83e1279b2..80ab21844c 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -1363,9 +1363,18 @@ PHP_RINIT_FUNCTION(session) php_rinit_session_globals(PSLS_C); if (PS(mod) == NULL) { - /* current status is unusable */ - PS(nr_open_sessions) = -1; - return SUCCESS; + char *value; + + value = zend_ini_string("session.save_handler", sizeof("session.save_handler"), 0); + if (value) { + PS(mod) = _php_find_ps_module(value PSLS_CC); + } + + if (!PS(mod)) { + /* current status is unusable */ + PS(nr_open_sessions) = -1; + return SUCCESS; + } } if (PS(auto_start)) { |