diff options
author | Arpad Ray <arpad@php.net> | 2011-11-02 16:53:22 +0000 |
---|---|---|
committer | Arpad Ray <arpad@php.net> | 2011-11-02 16:53:22 +0000 |
commit | 11d6fcdba0f1e88718a87862e9f885d1e13cc38d (patch) | |
tree | 1a37d342292791813f84ba787b340d58e6017f2a | |
parent | 539a0f3bd340b6377ed3407d89665d2386fe0943 (diff) | |
download | php-git-11d6fcdba0f1e88718a87862e9f885d1e13cc38d.tar.gz |
fix calling user close func when it isn't open
-rw-r--r-- | ext/session/session.c | 2 | ||||
-rw-r--r-- | ext/session/tests/session_set_save_handler_class_014.phpt | 2 | ||||
-rw-r--r-- | ext/session/tests/session_set_save_handler_class_015.phpt | 24 |
3 files changed, 24 insertions, 4 deletions
diff --git a/ext/session/session.c b/ext/session/session.c index ac3fda0a69..faa45824aa 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -1649,7 +1649,6 @@ static PHP_FUNCTION(session_set_save_handler) remove_user_shutdown_function("session_shutdown" TSRMLS_CC); } - PS(mod_user_implemented) = 1; if (PS(mod) && PS(session_status) == php_session_none && PS(mod) != &ps_mod_user) { zend_alter_ini_entry("session.save_handler", sizeof("session.save_handler"), "user", sizeof("user")-1, PHP_INI_USER, PHP_INI_STAGE_RUNTIME); } @@ -1674,7 +1673,6 @@ static PHP_FUNCTION(session_set_save_handler) efree(name); } - PS(mod_user_implemented) = 1; if (PS(mod) && PS(mod) != &ps_mod_user) { zend_alter_ini_entry("session.save_handler", sizeof("session.save_handler"), "user", sizeof("user")-1, PHP_INI_USER, PHP_INI_STAGE_RUNTIME); diff --git a/ext/session/tests/session_set_save_handler_class_014.phpt b/ext/session/tests/session_set_save_handler_class_014.phpt index 51fc690dfe..ea62beb0ff 100644 --- a/ext/session/tests/session_set_save_handler_class_014.phpt +++ b/ext/session/tests/session_set_save_handler_class_014.phpt @@ -28,5 +28,3 @@ session_start(); *** Testing session_set_save_handler() : calling default handler when save_handler=user *** Fatal error: SessionHandler::open(): Cannot call default session handler in %s on line %d - -Fatal error: Unknown: Cannot call default session handler in %s on line %d diff --git a/ext/session/tests/session_set_save_handler_class_015.phpt b/ext/session/tests/session_set_save_handler_class_015.phpt new file mode 100644 index 0000000000..3bef51be4f --- /dev/null +++ b/ext/session/tests/session_set_save_handler_class_015.phpt @@ -0,0 +1,24 @@ +--TEST-- +Test session_set_save_handler() : register session handler but don't start +--INI-- +session.save_handler=files +session.name=PHPSESSID +--SKIPIF-- +<?php include('skipif.inc'); ?> +--FILE-- +<?php + +ob_start(); + +/* + * Prototype : bool session_set_save_handler(SessionHandler $handler [, bool $register_shutdown_function = true]) + * Description : Sets user-level session storage functions + * Source code : ext/session/session.c + */ + +echo "*** Testing session_set_save_handler() : register session handler but don't start ***\n"; + +session_set_save_handler(new SessionHandler); + +--EXPECTF-- +*** Testing session_set_save_handler() : register session handler but don't start *** |