summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArpad Ray <arpad@php.net>2011-11-02 16:53:22 +0000
committerArpad Ray <arpad@php.net>2011-11-02 16:53:22 +0000
commit11d6fcdba0f1e88718a87862e9f885d1e13cc38d (patch)
tree1a37d342292791813f84ba787b340d58e6017f2a
parent539a0f3bd340b6377ed3407d89665d2386fe0943 (diff)
downloadphp-git-11d6fcdba0f1e88718a87862e9f885d1e13cc38d.tar.gz
fix calling user close func when it isn't open
-rw-r--r--ext/session/session.c2
-rw-r--r--ext/session/tests/session_set_save_handler_class_014.phpt2
-rw-r--r--ext/session/tests/session_set_save_handler_class_015.phpt24
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 ***