# endif #endif typedef struct { char *lastkey; char *basedir; size_t basedir_len; size_t dirdepth; size_t st_size; int filemode; int fd; } ps_files; ps_module ps_mod_files = { /* New save handlers MUST use PS_MOD_UPDATE_TIMESTAMP macro */ PS_MOD_UPDATE_TIMESTAMP(files) }; static char *ps_files_path_create(char *buf, size_t buflen, ps_files *data, const char *key) { size_t key_len; const char *p; int i; size_t n; key_len = strlen(key); if (key_len <= data->dirdepth || buflen < (data->basedir_len + 2 * data->dirdepth + key_len + 5 + sizeof(FILE_PREFIX))) { return NULL; }
| If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | [email protected] so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Author: Sascha Schumann <*****@*****.**> | +----------------------------------------------------------------------+ */ /* $Id$ */ #include "php.h" #include "php_session.h" #include "mod_user.h" ps_module ps_mod_user = { PS_MOD_UPDATE_TIMESTAMP(user) }; static void ps_call_handler(zval *func, int argc, zval *argv, zval *retval) { int i; if (PS(in_save_handler)) { PS(in_save_handler) = 0; ZVAL_UNDEF(retval); php_error_docref(NULL, E_WARNING, "Cannot call session save handler in a recursive manner"); return; } PS(in_save_handler) = 1; if (call_user_function(EG(function_table), NULL, func, retval, argc, argv) == FAILURE) { zval_ptr_dtor(retval);
#include "php_memcached.h" #include "php_memcached_private.h" #include "php_memcached_session.h" #include "Zend/zend_smart_str_public.h" extern ZEND_DECLARE_MODULE_GLOBALS(php_memcached) #define MEMC_SESS_DEFAULT_LOCK_WAIT 150000 #define MEMC_SESS_LOCK_EXPIRATION 30 #define REALTIME_MAXDELTA 60*60*24*30 ps_module ps_mod_memcached = { PS_MOD_UPDATE_TIMESTAMP(memcached) }; typedef struct { zend_bool is_persistent; zend_bool has_sasl_data; zend_bool is_locked; zend_string *lock_key; } php_memcached_user_data; #ifndef MIN # define MIN(a,b) (((a)<(b))?(a):(b)) #endif #ifndef MAX # define MAX(a,b) (((a)>(b))?(a):(b))