From: Yasuo Ohgaki Date: Thu, 12 Feb 2015 03:32:36 +0000 (+0900) Subject: Pass maxlifetime to save handlers X-Git-Tag: PRE_PHP7_EREG_MYSQL_REMOVALS~179 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=741b5952c6d8b0a75c9b421e10b9bace5b7a89f4;p=php Pass maxlifetime to save handlers --- diff --git a/ext/session/mod_user_class.c b/ext/session/mod_user_class.c index 328416c02e..82aea14854 100644 --- a/ext/session/mod_user_class.c +++ b/ext/session/mod_user_class.c @@ -80,7 +80,7 @@ PHP_METHOD(SessionHandler, read) return; } - if (PS(default_mod)->s_read(&PS(mod_data), key, &val) == FAILURE) { + if (PS(default_mod)->s_read(&PS(mod_data), key, &val, PS(gc_maxlifetime)) == FAILURE) { RETVAL_FALSE; return; } @@ -101,7 +101,7 @@ PHP_METHOD(SessionHandler, write) return; } - RETURN_BOOL(SUCCESS == PS(default_mod)->s_write(&PS(mod_data), key, val)); + RETURN_BOOL(SUCCESS == PS(default_mod)->s_write(&PS(mod_data), key, val, PS(gc_maxlifetime))); } /* }}} */ @@ -186,6 +186,6 @@ PHP_METHOD(SessionHandler, updateTimestamp) } /* Legacy save handler may not support update_timestamp API. Just write. */ - RETVAL_BOOL(SUCCESS == PS(default_mod)->s_write(&PS(mod_data), key, val)); + RETVAL_BOOL(SUCCESS == PS(default_mod)->s_write(&PS(mod_data), key, val, PS(gc_maxlifetime))); } /* }}} */ diff --git a/ext/session/php_session.h b/ext/session/php_session.h index 2c3e0cf798..972a39cefc 100644 --- a/ext/session/php_session.h +++ b/ext/session/php_session.h @@ -33,13 +33,13 @@ #define PS_NUM_APIS 9 #define PS_OPEN_ARGS void **mod_data, const char *save_path, const char *session_name #define PS_CLOSE_ARGS void **mod_data -#define PS_READ_ARGS void **mod_data, zend_string *key, zend_string **val -#define PS_WRITE_ARGS void **mod_data, zend_string *key, zend_string *val +#define PS_READ_ARGS void **mod_data, zend_string *key, zend_string **val, int maxlifetime +#define PS_WRITE_ARGS void **mod_data, zend_string *key, zend_string *val, int maxlifetime #define PS_DESTROY_ARGS void **mod_data, zend_string *key #define PS_GC_ARGS void **mod_data, int maxlifetime, int *nrdels #define PS_CREATE_SID_ARGS void **mod_data #define PS_VALIDATE_SID_ARGS void **mod_data, zend_string *key -#define PS_UPDATE_TIMESTAMP_ARGS void **mod_data, zend_string *key, zend_string *val +#define PS_UPDATE_TIMESTAMP_ARGS void **mod_data, zend_string *key, zend_string *val, int maxlifetime typedef struct ps_module_struct { const char *s_name; diff --git a/ext/session/session.c b/ext/session/session.c index c6f5f5230f..4d03547172 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -519,7 +519,7 @@ static void php_session_initialize(void) /* {{{ */ /* Read data */ php_session_track_init(); - if (PS(mod)->s_read(&PS(mod_data), PS(id), &val) == FAILURE) { + if (PS(mod)->s_read(&PS(mod_data), PS(id), &val, PS(gc_maxlifetime)) == FAILURE) { /* Some broken save handler implementation returns FAILURE for non-existent session ID */ /* It's better to raise error for this, but disabled error for better compatibility */ /* @@ -557,13 +557,13 @@ static void php_session_save_current_state(int write) /* {{{ */ && val->len == PS(session_vars)->len && !memcmp(val->val, PS(session_vars)->val, val->len) ) { - ret = PS(mod)->s_update_timestamp(&PS(mod_data), PS(id), val); + ret = PS(mod)->s_update_timestamp(&PS(mod_data), PS(id), val, PS(gc_maxlifetime)); } else { - ret = PS(mod)->s_write(&PS(mod_data), PS(id), val); + ret = PS(mod)->s_write(&PS(mod_data), PS(id), val, PS(gc_maxlifetime)); } zend_string_release(val); } else { - ret = PS(mod)->s_write(&PS(mod_data), PS(id), STR_EMPTY_ALLOC()); + ret = PS(mod)->s_write(&PS(mod_data), PS(id), STR_EMPTY_ALLOC(), PS(gc_maxlifetime)); } }