cvs: php-src / NEWS /ext/session session.c

From: Date: Sun, 14 Dec 2003 23:24:52 +0000
Subject: cvs: php-src / NEWS /ext/session session.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-25188@lists.php.net to get a copy of this message
iliaa Sun Dec 14 18:24:52 2003 EDT Modified files: /php-src NEWS /php-src/ext/session session.c Log: Fixed bug #24693 (Allow session.use_trans_sid to be enabled/disabled from inside the script). Index: php-src/NEWS diff -u php-src/NEWS:1.1535 php-src/NEWS:1.1536 --- php-src/NEWS:1.1535 Sat Dec 13 13:55:52 2003 +++ php-src/NEWS Sun Dec 14 18:24:50 2003 @@ -47,6 +47,8 @@ has no properties (NULL hashtable)). (Wez) - Fixed bug #25664 (COM crashes when calling a Delphi implementations of ITypeInfo). (Wez) +- Fixed bug #24693 (Allow session.use_trans_sid to be enabled/disabled from + inside the script). (Ilia) - Fixed bug #24394 (Serializing cross-referenced objects causes segfault). (Moriyoshi) Index: php-src/ext/session/session.c diff -u php-src/ext/session/session.c:1.379 php-src/ext/session/session.c:1.380 --- php-src/ext/session/session.c:1.379 Sun Dec 7 09:29:43 2003 +++ php-src/ext/session/session.c Sun Dec 14 18:24:50 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: session.c,v 1.379 2003/12/07 14:29:43 derick Exp $ */ +/* $Id: session.c,v 1.380 2003/12/14 23:24:50 iliaa Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -86,12 +86,16 @@ static ps_module *_php_find_ps_module(char *name TSRMLS_DC); static const ps_serializer *_php_find_ps_serializer(char *name TSRMLS_DC); +#define SESSION_CHECK_ACTIVE_STATE \ + if (PS(session_status) == php_session_active) { \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "A session is active. You cannot change the session module's ini settings at this time."); \ + return FAILURE; \ + } \ + static PHP_INI_MH(OnUpdateSaveHandler) { - if (PS(session_status) == php_session_active) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "A session is active. You cannot change the session module's ini settings at this time."); - return FAILURE; - } + SESSION_CHECK_ACTIVE_STATE; + PS(mod) = _php_find_ps_module(new_value TSRMLS_CC); if (PG(modules_activated) && !PS(mod)) { @@ -101,12 +105,23 @@ return SUCCESS; } -static PHP_INI_MH(OnUpdateSerializer) +static PHP_INI_MH(OnUpdateTransSid) { - if (PS(session_status) == php_session_active) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "A session is active. You cannot change the session module's ini settings at this time."); - return FAILURE; + SESSION_CHECK_ACTIVE_STATE; + + if (!strncasecmp(new_value, "on", sizeof("on"))) { + PS(use_trans_sid) = (zend_bool) 1; + } else { + PS(use_trans_sid) = (zend_bool) atoi(new_value); } + + return SUCCESS; +} + +static PHP_INI_MH(OnUpdateSerializer) +{ + SESSION_CHECK_ACTIVE_STATE; + PS(serializer) = _php_find_ps_serializer(new_value TSRMLS_CC); if (PG(modules_activated) && !PS(serializer)) { @@ -141,7 +156,7 @@ STD_PHP_INI_ENTRY("session.entropy_length", "0", PHP_INI_ALL, OnUpdateLong, entropy_length, php_ps_globals, ps_globals) STD_PHP_INI_ENTRY("session.cache_limiter", "nocache", PHP_INI_ALL, OnUpdateString, cache_limiter, php_ps_globals, ps_globals) STD_PHP_INI_ENTRY("session.cache_expire", "180", PHP_INI_ALL, OnUpdateLong, cache_expire, php_ps_globals, ps_globals) - STD_PHP_INI_BOOLEAN("session.use_trans_sid", "0", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateBool, use_trans_sid, php_ps_globals, ps_globals) + PHP_INI_ENTRY("session.use_trans_sid", "0", PHP_INI_ALL, OnUpdateTransSid) STD_PHP_INI_ENTRY("session.hash_function", "0", PHP_INI_ALL, OnUpdateLong, hash_func, php_ps_globals, ps_globals) STD_PHP_INI_ENTRY("session.hash_bits_per_character", "4", PHP_INI_ALL, OnUpdateLong, hash_bits_per_character, php_ps_globals, ps_globals)

« previous php.cvs (#25188) next »