]> granicus.if.org Git - php/commitdiff
Pass maxlifetime to save handlers
authorYasuo Ohgaki <yohgaki@php.net>
Thu, 12 Feb 2015 03:32:36 +0000 (12:32 +0900)
committerYasuo Ohgaki <yohgaki@php.net>
Thu, 12 Feb 2015 04:07:27 +0000 (13:07 +0900)
ext/session/mod_user_class.c
ext/session/php_session.h
ext/session/session.c

index 328416c02e16194a50c2bdd5afb3c471d8cc2ca8..82aea1485423a86c40b1e3b3e46a7a613958fd9c 100644 (file)
@@ -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)));
 }
 /* }}} */
index 2c3e0cf79868b0123145e0ba408ef8caa835aef1..972a39cefc825641bf6a69cdd80ebdc0254aa951 100644 (file)
 #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;
index c6f5f5230f3f984182e3460620b9966284da15f7..4d0354717295e458ffe25d3d708435d92b4cb453 100644 (file)
@@ -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));
                                }
                        }