. gmp_setbit() and gmp_clrbit() now return FALSE for negative indices, making
them consistent with other GMP functions.
+- Session
+ . session_start() accepts all INI settings as array. e.g. ['cache_limiter'=>'private']
+ sets session.cache_limiter=private. It also supports 'read_and_close' which closes
+ session data immediately after read data.
+ . Save handlers accpets validate_sid(), update_timestamp() which validates session
+ ID existence, updates timestamp of session data. Compatibility of old user defined
+ save handler is retained.
+ . SessionUpdateTimestampHandlerInterface is added. validateSid(), updateTimestamp()
+ is defined in the interface.
+ . session.lazy_write(default=On) INI setting enables only write session data when
+ session data is updated.
+
- Standard:
. Removed string category support in setlocale(). Use the LC_* constants
instead.
- configure.js now produces response files which are passed to the linker
and library manager. This solves the issues with the long command lines
which can exceed the OS limit.
+
+
+========================
+3. Module changes
+========================
+
+ Session:
+
+ - PS_MOD_UPDATE_TIMESTAMP() session save handler definition is added. New
+ save handler should use PS_MOD_UPDATE_TIMESTAMP() definition. Save handler
+ must not refer/change PS() variables directly from save handler.
+ - PS_MOD_UPDATE_TIMESTAMP() defines validate_sid() handler. This handler
+ must validate if requested session ID is in session data storage or not.
+ Internal save handler needed to asscess PS(id) directly to validate it.
+ Do not access PS(id), but use this handler.
+ - PS_MOD_UPDATE_TIMESTAMP() defines update_timestamp() handlers. This handler
+ must update session data timestamp for GC if it is needed. e.g. Memcache
+ updates timestap on read, so it does not need to update timestamp. Return
+ SUCCESS simply for this case.
PS(send_cookie) = 1;
}
}
-
+
/* Set session ID for compatibility for older/3rd party save handlers */
if (!PS(use_strict_mode)) {
php_session_reset_id();
int ret = FAILURE;
IF_SESSION_VARS() {
- if (PS(mod_data) || PS(mod_user_implemented)) {
+ if (PS(mod_data) || PS(mod_user_implemented)) {
zend_string *val;
val = php_session_encode();