]> granicus.if.org Git - php/commitdiff
Merge in session API changes (carry around tsrm context)
authorSascha Schumann <sas@php.net>
Wed, 6 Mar 2002 11:49:51 +0000 (11:49 +0000)
committerSascha Schumann <sas@php.net>
Wed, 6 Mar 2002 11:49:51 +0000 (11:49 +0000)
Now PHP_SESSION_API is defined to the date of the last change,
so that externa source-code can handle changes more gracefully.

ext/session/mod_files.c
ext/session/mod_user.c
ext/session/php_session.h
ext/session/session.c

index 322d3cc3cf04e61a8f615851cacb97ca05430b15..9ca57b7eac58c68fb0003934abf65cf8c3d9189c 100644 (file)
@@ -123,10 +123,9 @@ static void ps_files_close(ps_files *data)
        }
 }
 
-static void ps_files_open(ps_files *data, const char *key)
+static void ps_files_open(ps_files *data, const char *key TSRMLS_DC)
 {
        char buf[MAXPATHLEN];
-       TSRMLS_FETCH();
 
        if (data->fd < 0 || !data->lastkey || strcmp(key, data->lastkey)) {
                if (data->lastkey) {
@@ -159,7 +158,7 @@ static void ps_files_open(ps_files *data, const char *key)
        }
 }
 
-static int ps_files_cleanup_dir(const char *dirname, int maxlifetime)
+static int ps_files_cleanup_dir(const char *dirname, int maxlifetime TSRMLS_DC)
 {
        DIR *dir;
        char dentry[sizeof(struct dirent) + MAXPATHLEN];
@@ -169,7 +168,6 @@ static int ps_files_cleanup_dir(const char *dirname, int maxlifetime)
        time_t now;
        int nrdels = 0;
        size_t dirname_len;
-       TSRMLS_FETCH();
 
        dir = opendir(dirname);
        if (!dir) {
@@ -254,7 +252,7 @@ PS_READ_FUNC(files)
        struct stat sbuf;
        PS_FILES_DATA;
 
-       ps_files_open(data, key);
+       ps_files_open(data, key TSRMLS_CC);
        if (data->fd < 0)
                return FAILURE;
        
@@ -283,7 +281,7 @@ PS_WRITE_FUNC(files)
        long n;
        PS_FILES_DATA;
 
-       ps_files_open(data, key);
+       ps_files_open(data, key TSRMLS_CC);
        if (data->fd < 0)
                return FAILURE;
 
@@ -314,7 +312,6 @@ PS_DESTROY_FUNC(files)
 {
        char buf[MAXPATHLEN];
        PS_FILES_DATA;
-       TSRMLS_FETCH();
 
        if (!ps_files_path_create(buf, sizeof(buf), data, key))
                return FAILURE;
@@ -337,7 +334,7 @@ PS_GC_FUNC(files)
           an external entity (i.e. find -ctime x | xargs rm) */
           
        if (data->dirdepth == 0)
-               *nrdels = ps_files_cleanup_dir(data->basedir, maxlifetime);
+               *nrdels = ps_files_cleanup_dir(data->basedir, maxlifetime TSRMLS_CC);
        
        return SUCCESS;
 }
index 3f36cb206bfdf2ea8c079afbd3b6543a3d4da36c..970f1ef7c0d0a709461309052a29fce904f8a046 100644 (file)
@@ -51,11 +51,10 @@ ps_module ps_mod_user = {
 }
 
 
-static zval *ps_call_handler(zval *func, int argc, zval **argv)
+static zval *ps_call_handler(zval *func, int argc, zval **argv TSRMLS_DC)
 {
        int i;
        zval *retval = NULL;
-       TSRMLS_FETCH();
        
        MAKE_STD_ZVAL(retval);
        if (call_user_function(EG(function_table), NULL, func, retval, 
@@ -96,7 +95,7 @@ PS_OPEN_FUNC(user)
        SESS_ZVAL_STRING(save_path, args[0]);
        SESS_ZVAL_STRING(session_name, args[1]);
        
-       retval = ps_call_handler(PSF(open), 2, args);
+       retval = ps_call_handler(PSF(open), 2, args TSRMLS_CC);
        
        FINISH;
 }
@@ -106,7 +105,7 @@ PS_CLOSE_FUNC(user)
        int i;
        STDVARS;
 
-       retval = ps_call_handler(PSF(close), 0, NULL);
+       retval = ps_call_handler(PSF(close), 0, NULL TSRMLS_CC);
 
        for (i = 0; i < 6; i++)
                zval_ptr_dtor(&mdata->names[i]);
@@ -124,7 +123,7 @@ PS_READ_FUNC(user)
 
        SESS_ZVAL_STRING(key, args[0]);
 
-       retval = ps_call_handler(PSF(read), 1, args);
+       retval = ps_call_handler(PSF(read), 1, args TSRMLS_CC);
        
        if (retval) {
                if (Z_TYPE_P(retval) == IS_STRING) {
@@ -146,7 +145,7 @@ PS_WRITE_FUNC(user)
        SESS_ZVAL_STRING(key, args[0]);
        SESS_ZVAL_STRINGN(val, vallen, args[1]);
 
-       retval = ps_call_handler(PSF(write), 2, args);
+       retval = ps_call_handler(PSF(write), 2, args TSRMLS_CC);
 
        FINISH;
 }
@@ -158,7 +157,7 @@ PS_DESTROY_FUNC(user)
 
        SESS_ZVAL_STRING(key, args[0]);
 
-       retval = ps_call_handler(PSF(destroy), 1, args);
+       retval = ps_call_handler(PSF(destroy), 1, args TSRMLS_CC);
 
        FINISH;
 }
@@ -170,7 +169,7 @@ PS_GC_FUNC(user)
 
        SESS_ZVAL_LONG(maxlifetime, args[0]);
 
-       retval = ps_call_handler(PSF(gc), 1, args);
+       retval = ps_call_handler(PSF(gc), 1, args TSRMLS_CC);
 
        FINISH;
 }
index 5e10be2d3dd7e7abbf3d4791c56e9b35432a3d1d..c3e31d0570333a228df96072f6361a0ed45d8346 100644 (file)
 
 #include "ext/standard/php_var.h"
 
-#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, const char *key, char **val, int *vallen
-#define PS_WRITE_ARGS void **mod_data, const char *key, const char *val, const int vallen
-#define PS_DESTROY_ARGS void **mod_data, const char *key
-#define PS_GC_ARGS void **mod_data, int maxlifetime, int *nrdels
+#define PHP_SESSION_API 20020306
+
+#define PS_OPEN_ARGS void **mod_data, const char *save_path, const char *session_name TSRMLS_DC
+#define PS_CLOSE_ARGS void **mod_data TSRMLS_DC
+#define PS_READ_ARGS void **mod_data, const char *key, char **val, int *vallen TSRMLS_DC
+#define PS_WRITE_ARGS void **mod_data, const char *key, const char *val, const int vallen TSRMLS_DC
+#define PS_DESTROY_ARGS void **mod_data, const char *key TSRMLS_DC
+#define PS_GC_ARGS void **mod_data, int maxlifetime, int *nrdels TSRMLS_DC
 
 typedef struct ps_module_struct {
        const char *name;
index b11c7b6cf7e9389b4b7276b49cf5a9e2d4596922..effcb881f56809ed1da076f1105cbad1d88d273d 100644 (file)
@@ -549,12 +549,12 @@ static void php_session_initialize(TSRMLS_D)
        char *val;
        int vallen;
        
-       if (PS(mod)->open(&PS(mod_data), PS(save_path), PS(session_name)) == FAILURE) {
+       if (PS(mod)->open(&PS(mod_data), PS(save_path), PS(session_name) TSRMLS_CC) == FAILURE) {
                php_error(E_ERROR, "Failed to initialize session module");
                return;
        }
        php_session_track_init(TSRMLS_C);
-       if (PS(mod)->read(&PS(mod_data), PS(id), &val, &vallen) == SUCCESS) {
+       if (PS(mod)->read(&PS(mod_data), PS(id), &val, &vallen TSRMLS_CC) == SUCCESS) {
                php_session_decode(val, vallen TSRMLS_CC);
                efree(val);
        }
@@ -586,10 +586,10 @@ static void php_session_save_current_state(TSRMLS_D)
        if (PS(mod_data)) {
                val = php_session_encode(&vallen TSRMLS_CC);
                if (val) {
-                       ret = PS(mod)->write(&PS(mod_data), PS(id), val, vallen);
+                       ret = PS(mod)->write(&PS(mod_data), PS(id), val, vallen TSRMLS_CC);
                        efree(val);
                } else {
-                       ret = PS(mod)->write(&PS(mod_data), PS(id), "", 0);
+                       ret = PS(mod)->write(&PS(mod_data), PS(id), "", 0 TSRMLS_CC);
                }
        }
        
@@ -602,7 +602,7 @@ static void php_session_save_current_state(TSRMLS_D)
        
        
        if (PS(mod_data))
-               PS(mod)->close(&PS(mod_data));
+               PS(mod)->close(&PS(mod_data) TSRMLS_CC);
 }
 
 static char *month_names[] = {
@@ -955,7 +955,7 @@ PHPAPI void php_session_start(TSRMLS_D)
 
                nrand = (int) (100.0*php_combined_lcg(TSRMLS_C));
                if (nrand < PS(gc_probability)) {
-                       PS(mod)->gc(&PS(mod_data), PS(gc_maxlifetime), &nrdels);
+                       PS(mod)->gc(&PS(mod_data), PS(gc_maxlifetime), &nrdels TSRMLS_CC);
 #if 0
                        if (nrdels != -1)
                                php_error(E_NOTICE, "purged %d expired session objects\n", nrdels);
@@ -973,7 +973,7 @@ static zend_bool php_session_destroy(TSRMLS_D)
                return FAILURE;
        }
 
-       if (PS(mod)->destroy(&PS(mod_data), PS(id)) == FAILURE) {
+       if (PS(mod)->destroy(&PS(mod_data), PS(id) TSRMLS_CC) == FAILURE) {
                retval = FAILURE;
                php_error(E_WARNING, "Session object destruction failed");
        }
@@ -1079,7 +1079,7 @@ PHP_FUNCTION(session_module_name)
                tempmod = _php_find_ps_module(Z_STRVAL_PP(p_name) TSRMLS_CC);
                if (tempmod) {
                        if (PS(mod_data))
-                               PS(mod)->close(&PS(mod_data));
+                               PS(mod)->close(&PS(mod_data) TSRMLS_CC);
                        PS(mod) = tempmod;
                        PS(mod_data) = NULL;
                } else {
@@ -1414,7 +1414,7 @@ static void php_rinit_session_globals(TSRMLS_D)
 static void php_rshutdown_session_globals(TSRMLS_D)
 {
        if (PS(mod_data)) {
-               PS(mod)->close(&PS(mod_data));
+               PS(mod)->close(&PS(mod_data) TSRMLS_CC);
        }
        if (PS(id)) {
                efree(PS(id));