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;
}
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)));
}
/* }}} */
}
/* 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)));
}
/* }}} */
#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;
/* 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 */
/*
&& 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));
}
}