#include <dirent.h>
#endif
-#if WIN32||WINNT
+#if PHP_WIN32
#define NEEDRDH 1
#include "win32/readdir.h"
#endif
PS_MOD(files)
};
-#if WIN32|WINNT
+#if PHP_WIN32
#define DIR_DELIMITER '\\'
#else
#define DIR_DELIMITER '/'
char c;
int ret = 1;
- for(p = key; (c = *p); p++) {
+ for (p = key; (c = *p); p++) {
/* valid characters are a..z,A..Z,0..9 */
- if(!((c >= 'a' && c <= 'z') ||
+ if (!((c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') ||
(c >= '0' && c <= '9'))) {
ret = 0;
len = p - key;
- if(len == 0) {
+ if (len == 0)
ret = 0;
- }
return ret;
}
int n;
keylen = strlen(key);
- if(keylen <= data->dirdepth || buflen <
+ if (keylen <= data->dirdepth || buflen <
(strlen(data->basedir) + 2 * data->dirdepth + keylen + 5 + sizeof(FILE_PREFIX)))
return NULL;
p = key;
n = sprintf(buf, "%s/", data->basedir);
- for(i = 0; i < data->dirdepth; i++) {
+ for (i = 0; i < data->dirdepth; i++) {
buf[n++] = *p++;
buf[n++] = DIR_DELIMITER;
}
{
char buf[MAXPATHLEN];
- if(data->fd < 0 || !data->lastkey || strcmp(key, data->lastkey)) {
- if(data->lastkey) {
+ if (data->fd < 0 || !data->lastkey || strcmp(key, data->lastkey)) {
+ if (data->lastkey) {
efree(data->lastkey);
data->lastkey = NULL;
}
- if(data->fd != -1) {
+ if (data->fd != -1) {
close(data->fd);
data->fd = -1;
}
- if(!_ps_files_valid_key(key) ||
+ if (!_ps_files_valid_key(key) ||
!_ps_files_path_create(buf, sizeof(buf), data, key))
return;
}
#else
data->fd = open(buf, O_CREAT | O_RDWR, 0600);
- if(data->fd != -1) {
+ if (data->fd != -1)
flock(data->fd, LOCK_EX);
- }
#endif
}
}
time_t now;
dir = opendir(dirname);
- if(!dir) return;
+ if (!dir) return;
time(&now);
while((entry = readdir(dir))) {
/* does the file start with our prefix? */
- if(!strncmp(entry->d_name, FILE_PREFIX, sizeof(FILE_PREFIX) - 1) &&
+ if (!strncmp(entry->d_name, FILE_PREFIX, sizeof(FILE_PREFIX) - 1) &&
/* create full path */
snprintf(buf, MAXPATHLEN, "%s%c%s", dirname, DIR_DELIMITER,
entry->d_name) > 0 &&
PS_SET_MOD_DATA(data);
data->fd = -1;
- if((p = strchr(save_path, ':'))) {
+ if ((p = strchr(save_path, ':'))) {
data->dirdepth = strtol(save_path, NULL, 10);
save_path = p + 1;
}
{
PS_FILES_DATA;
- if(data->fd > -1) close(data->fd);
- if(data->lastkey) efree(data->lastkey);
+ if (data->fd > -1)
+ close(data->fd);
+ if (data->lastkey)
+ efree(data->lastkey);
efree(data->basedir);
efree(data);
*mod_data = NULL;
PS_FILES_DATA;
_ps_files_open(data, key);
- if(data->fd < 0) {
+ if (data->fd < 0)
return FAILURE;
- }
- if(fstat(data->fd, &sbuf)) {
+ if (fstat(data->fd, &sbuf))
return FAILURE;
- }
lseek(data->fd, 0, SEEK_SET);
*val = emalloc(sbuf.st_size);
n = read(data->fd, *val, sbuf.st_size);
- if(n != sbuf.st_size) {
+ if (n != sbuf.st_size) {
efree(*val);
return FAILURE;
}
PS_FILES_DATA;
_ps_files_open(data, key);
- if(data->fd < 0) {
+ if (data->fd < 0)
return FAILURE;
- }
ftruncate(data->fd, 0);
lseek(data->fd, 0, SEEK_SET);
char buf[MAXPATHLEN];
PS_FILES_DATA;
- if(!_ps_files_path_create(buf, sizeof(buf), data, key))
+ if (!_ps_files_path_create(buf, sizeof(buf), data, key))
return FAILURE;
unlink(buf);
we return SUCCESS, since all cleanup should be handled by
an external entity (i.e. find -ctime x | xargs rm) */
- if(data->dirdepth > 0) {
- return SUCCESS;
- }
-
- _ps_files_cleanup_dir(data->basedir, maxlifetime);
+ if (data->dirdepth == 0)
+ _ps_files_cleanup_dir(data->basedir, maxlifetime);
return SUCCESS;
}
{
unsigned int val, i;
- for(val = 0; *data; data++) {
+ for (val = 0; *data; data++) {
val = (val << ONE_EIGTH) + *data;
- if((i = val & HIGH_BITS) != 0) {
+ if ((i = val & HIGH_BITS) != 0)
val = (val ^ (i >> THREE_QUARTERS)) & -HIGH_BITS;
- }
}
return val;
h = ps_sd_hash(key) % HASH_SIZE;
sd = mm_malloc(data->mm, sizeof(*sd));
- if(!sd) {
+ if (!sd)
return NULL;
- }
sd->ctime = 0;
sd->data = mm_malloc(data->mm, sdatalen);
- if(!sd->data) {
+ if (!sd->data) {
mm_free(data->mm, sd);
return NULL;
}
sd->datalen = sdatalen;
sd->key = mm_strdup(data->mm, key);
- if(!sd->key) {
+ if (!sd->key) {
mm_free(data->mm, sd->data);
mm_free(data->mm, sd);
return NULL;
memcpy(sd->data, sdata, sdatalen);
- if((sd->next = data->hash[h]))
+ if ((sd->next = data->hash[h]))
sd->next->prev = sd;
sd->prev = NULL;
h = ps_sd_hash(sd->key) % HASH_SIZE;
- if(sd->next)
+ if (sd->next)
sd->next->prev = sd->prev;
- if(sd->prev)
+ if (sd->prev)
sd->prev->next = sd->next;
- if(data->hash[h] == sd)
+ if (data->hash[h] == sd)
data->hash[h] = sd->next;
mm_free(data->mm, sd->key);
- if(sd->data) mm_free(data->mm, sd->data);
+ if (sd->data)
+ mm_free(data->mm, sd->data);
mm_free(data->mm, sd);
}
h = ps_sd_hash(key) % HASH_SIZE;
- for(ret = data->hash[h]; ret; ret = ret->next)
- if(!strcmp(ret->key, key)) break;
+ for (ret = data->hash[h]; ret; ret = ret->next)
+ if (!strcmp(ret->key, key))
+ break;
- if(ret && rw && ret != data->hash[h]) {
+ if (ret && rw && ret != data->hash[h]) {
data->hash[h]->prev = ret;
ret->next = data->hash[h];
data->hash[h] = ret;
int h;
ps_sd *sd, *next;
- for(h = 0; h < HASH_SIZE; h++) {
- for(sd = data->hash[h]; sd; sd = next) {
+ for (h = 0; h < HASH_SIZE; h++)
+ for (sd = data->hash[h]; sd; sd = next) {
next = sd->next;
ps_sd_destroy(data, sd);
}
- }
mm_free(data->mm, data->hash);
mm_destroy(data->mm);
{
ps_mm_debug("open: ps_mm_instance=%x\n", ps_mm_instance);
- if(!ps_mm_instance) {
+ if (!ps_mm_instance)
return FAILURE;
- }
PS_SET_MOD_DATA(ps_mm_instance);
mm_lock(data->mm, MM_LOCK_RD);
sd = ps_sd_lookup(data, key, 0);
- if(sd) {
+ if (sd) {
*vallen = sd->datalen;
*val = emalloc(sd->datalen);
memcpy(*val, sd->data, sd->datalen);
mm_lock(data->mm, MM_LOCK_RW);
sd = ps_sd_lookup(data, key, 1);
- if(!sd) {
+ if (!sd) {
sd = ps_sd_new(data, key, val, vallen);
ps_mm_debug(stderr, "new one for %s\n", key);
} else {
mm_free(data->mm, sd->data);
sd->datalen = vallen;
sd->data = mm_malloc(data->mm, vallen);
- if(!sd->data) {
+ if (!sd->data) {
ps_sd_destroy(data, sd);
sd = NULL;
- } else {
+ } else
memcpy(sd->data, val, vallen);
- }
}
- if(sd) time(&sd->ctime);
+ if (sd)
+ time(&sd->ctime);
mm_unlock(data->mm);
mm_lock(data->mm, MM_LOCK_RW);
sd = ps_sd_lookup(data, key, 0);
- if(sd) {
+ if (sd)
ps_sd_destroy(data, sd);
- }
mm_unlock(data->mm);
time(&now);
- for(h = 0; h < HASH_SIZE; h++) {
- for(sd = data->hash[h]; sd; sd = next) {
+ for (h = 0; h < HASH_SIZE; h++)
+ for (sd = data->hash[h]; sd; sd = next) {
next = sd->next;
ps_mm_debug("looking at %s\n", sd->key);
- if((now - sd->ctime) > maxlifetime) {
+ if ((now - sd->ctime) > maxlifetime)
ps_sd_destroy(data, sd);
- }
}
- }
mm_unlock(data->mm);
zval *retval = NULL;
ELS_FETCH();
- if(name && name[0] != '\0') {
+ if (name && name[0] != '\0') {
zval *func;
SESS_ZVAL_STRING(name, func);
MAKE_STD_ZVAL(retval);
- if(call_user_function(EG(function_table), NULL, func, retval,
+ if (call_user_function(EG(function_table), NULL, func, retval,
argc, argv) == FAILURE) {
zval_dtor(retval);
efree(retval);
efree(func);
}
- for(i = 0; i < argc; i++) {
+ for (i = 0; i < argc; i++) {
zval_dtor(argv[i]);
efree(argv[i]);
}
zval *retval; \
int ret = FAILURE; \
ps_user *mdata = PS_GET_MOD_DATA(); \
- if(!mdata) return FAILURE
+ if (!mdata) \
+ return FAILURE
#define PSF(a) mdata->name.ps_##a
#define FINISH \
- if(retval) { \
+ if (retval) { \
convert_to_long(retval); \
ret = retval->value.lval; \
zval_dtor(retval); \
retval = ps_call_handler(PSF(close), 0, NULL);
- for(i = 0; i < 6; i++) {
+ for (i = 0; i < 6; i++)
efree(mdata->names[i]);
- }
efree(mdata);
PS_SET_MOD_DATA(NULL);
retval = ps_call_handler(PSF(read), 1, args);
- if(retval) {
- if(retval->type == IS_STRING) {
+ if (retval) {
+ if (retval->type == IS_STRING) {
*val = estrndup(retval->value.str.val, retval->value.str.len);
*vallen = retval->value.str.len;
ret = SUCCESS;
+----------------------------------------------------------------------+
*/
-#ifndef PHP_WIN32
-#include <sys/time.h>
-#else
+#include "php.h"
+
+#if PHP_WIN32
#include "win32/time.h"
+#else
+#include <sys/time.h>
#endif
#include <sys/stat.h>
#include <fcntl.h>
-#include "php.h"
#include "php_ini.h"
#include "SAPI.h"
-
#include "php_session.h"
#include "ext/standard/md5.h"
#include "ext/standard/php_var.h"
ENCODE_VARS;
packet = php_wddx_constructor();
- if (!packet) return FAILURE;
+ if (!packet)
+ return FAILURE;
php_wddx_packet_start(packet, NULL);
php_wddx_add_chunk(packet, WDDX_STRUCT_S);
*newstr = php_wddx_gather(packet);
php_wddx_destructor(packet);
- if (newlen) *newlen = strlen(*newstr);
+ if (newlen)
+ *newlen = strlen(*newstr);
return SUCCESS;
}
int hash_type;
int dofree = 1;
- if (vallen == 0) return FAILURE;
+ if (vallen == 0)
+ return FAILURE;
MAKE_STD_ZVAL(retval);
{
char *ret = NULL;
- if (PS(serializer)->encode(&ret, newlen PSLS_CC) == FAILURE) {
+ if (PS(serializer)->encode(&ret, newlen PSLS_CC) == FAILURE)
ret = NULL;
- }
return ret;
}
sprintf(buf + (i << 1), "%02x", digest[i]);
buf[i << 1] = '\0';
- if (newlen) *newlen = i << 1;
+ if (newlen)
+ *newlen = i << 1;
return estrdup(buf);
}
ps_module **mod;
ps_module **end = ps_modules + (sizeof(ps_modules)/sizeof(ps_module*));
- for (mod = ps_modules; mod < end; mod++) {
+ for (mod = ps_modules; mod < end; mod++)
if (*mod && !strcasecmp(name, (*mod)->name)) {
ret = *mod;
break;
}
- }
return ret;
}
const ps_serializer *ret = NULL;
const ps_serializer *mod;
- for (mod = ps_serializers; mod->name; mod++) {
+ for (mod = ps_serializers; mod->name; mod++)
if (!strcasecmp(name, mod->name)) {
ret = mod;
break;
}
- }
return ret;
}
int lensess;
ELS_FETCH();
- if (PS(nr_open_sessions) != 0) return;
+ if (PS(nr_open_sessions) != 0)
+ return;
lensess = strlen(PS(session_name));
return;
}
- if (!track_vars && PS(use_cookies)) {
+ if (!track_vars && PS(use_cookies))
php_error(E_NOTICE, "Because track_vars are disabled, the session module will not be able to determine whether the user has sent a cookie. SID will always be defined.");
- }
/*
* If our only resource is the global symbol_table, then check it.
define_sid = 1;
}
- if (!PS(id)) {
+ if (!PS(id))
PS(id) = _php_create_id(NULL PSLS_CC);
- }
if (!PS(use_cookies) && send_cookie) {
define_sid = 1;
send_cookie = 0;
}
- if (send_cookie) {
+ if (send_cookie)
_php_session_send_cookie(PSLS_C);
- }
if (define_sid) {
char *buf;
buf = emalloc(strlen(PS(session_name)) + strlen(PS(id)) + 5);
sprintf(buf, "%s=%s", PS(session_name), PS(id));
REGISTER_STRING_CONSTANT("SID", buf, 0);
- } else {
+ } else
REGISTER_STRING_CONSTANT("SID", empty_string, 0);
- }
PS(define_sid) = define_sid;
PS(nr_open_sessions)++;
static void _php_session_destroy(PSLS_D)
{
- if (PS(nr_open_sessions) == 0)
- {
+ if (PS(nr_open_sessions) == 0) {
php_error(E_WARNING, "Trying to destroy uninitialized session");
return;
}
return;
if (ZEND_NUM_ARGS() < 1 || ZEND_NUM_ARGS() > 3 ||
- zend_get_parameters_ex(ZEND_NUM_ARGS(), &lifetime, &path, &domain) == FAILURE) {
+ zend_get_parameters_ex(ZEND_NUM_ARGS(), &lifetime, &path, &domain) == FAILURE)
WRONG_PARAM_COUNT;
- }
convert_to_long_ex(lifetime);
PS(cookie_lifetime) = (*lifetime)->value.lval;
old = estrdup(PS(session_name));
- if (ac < 0 || ac > 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE) {
+ if (ac < 0 || ac > 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE)
WRONG_PARAM_COUNT;
- }
if (ac == 1) {
convert_to_string_ex(p_name);
old = estrdup(PS(mod)->name);
- if (ac < 0 || ac > 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE) {
+ if (ac < 0 || ac > 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE)
WRONG_PARAM_COUNT;
- }
if (ac == 1) {
ps_module *tempmod;
ps_user *mdata;
PSLS_FETCH();
- if (ARG_COUNT(ht) != 6 || zend_get_parameters_array_ex(6, args) == FAILURE) {
+ if (ARG_COUNT(ht) != 6 || zend_get_parameters_array_ex(6, args) == FAILURE)
WRONG_PARAM_COUNT;
- }
- if (PS(nr_open_sessions) > 0) {
+ if (PS(nr_open_sessions) > 0)
RETURN_FALSE;
- }
PS(mod) = _php_find_ps_module("user" PSLS_CC);
old = estrdup(PS(save_path));
- if (ac < 0 || ac > 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE) {
+ if (ac < 0 || ac > 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE)
WRONG_PARAM_COUNT;
- }
if (ac == 1) {
convert_to_string_ex(p_name);
if (PS(id))
old = estrdup(PS(id));
- if (ac < 0 || ac > 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE) {
+ if (ac < 0 || ac > 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE)
WRONG_PARAM_COUNT;
- }
if (ac == 1) {
convert_to_string_ex(p_name);
/* {{{ static void php_register_var(zval** entry PSLS_DC PLS_DC) */
static void php_register_var(zval** entry PSLS_DC PLS_DC)
{
- zval** value;
+ zval **value;
if ((*entry)->type == IS_ARRAY) {
zend_hash_internal_pointer_reset((*entry)->value.ht);
- while(zend_hash_get_current_data((*entry)->value.ht, (void**)&value) == SUCCESS) {
+ while (zend_hash_get_current_data((*entry)->value.ht, (void**)&value) == SUCCESS) {
php_register_var(value PSLS_CC PLS_CC);
zend_hash_move_forward((*entry)->value.ht);
}
} else {
convert_to_string_ex(entry);
- if (!PG(track_vars) || strcmp((*entry)->value.str.val, "HTTP_STATE_VARS") != 0) {
+ if (!PG(track_vars) || strcmp((*entry)->value.str.val, "HTTP_STATE_VARS") != 0)
PS_ADD_VARL((*entry)->value.str.val, (*entry)->value.str.len);
- }
}
}
/* }}} */
adds varname(s) to the list of variables which are freezed at the session end */
PHP_FUNCTION(session_register)
{
- zval*** args;
+ zval ***args;
int argc = ARG_COUNT(ht);
int i;
PSLS_FETCH();
PLS_FETCH();
- if (argc <= 0) {
- RETURN_FALSE;
- } else
+ if (argc <= 0)
+ RETURN_FALSE
+ else
args = (zval ***)emalloc(argc * sizeof(zval **));
if (zend_get_parameters_array_ex(argc, args) == FAILURE) {
WRONG_PARAM_COUNT;
}
- if (!PS(nr_open_sessions)) _php_session_start(PSLS_C);
+ if (PS(nr_open_sessions) == 0)
+ _php_session_start(PSLS_C);
- for (i=0; i<argc; i++)
- {
- if ((*args[i])->type == IS_ARRAY) {
+ for (i = 0; i < argc; i++) {
+ if ((*args[i])->type == IS_ARRAY)
SEPARATE_ZVAL(args[i]);
- }
php_register_var(args[i] PSLS_CC PLS_CC);
}
int ac = ARG_COUNT(ht);
PSLS_FETCH();
- if (ac != 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE) {
+ if (ac != 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE)
WRONG_PARAM_COUNT;
- }
convert_to_string_ex(p_name);
int ac = ARG_COUNT(ht);
PSLS_FETCH();
- if (ac != 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE) {
+ if (ac != 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE)
WRONG_PARAM_COUNT;
- }
convert_to_string_ex(p_name);
- if (zend_hash_find(&PS(vars), (*p_name)->value.str.val, (*p_name)->value.str.len+1,
- (void **)&p_var) == SUCCESS) {
- RETURN_TRUE;
- } else {
+ if (zend_hash_find(&PS(vars), (*p_name)->value.str.val,
+ (*p_name)->value.str.len+1, (void **)&p_var) == SUCCESS)
+ RETURN_TRUE
+ else
RETURN_FALSE;
- }
}
/* }}} */
pval **str;
PSLS_FETCH();
- if (ARG_COUNT(ht) != 1 || zend_get_parameters_ex(1, &str) == FAILURE) {
+ if (ARG_COUNT(ht) != 1 || zend_get_parameters_ex(1, &str) == FAILURE)
WRONG_PARAM_COUNT;
- }
convert_to_string_ex(str);
zend_hash_get_current_key(&PS(vars), &variable, &num_key) == HASH_KEY_IS_STRING;
zend_hash_move_forward(&PS(vars))) {
if (zend_hash_find(&EG(symbol_table), variable, strlen(variable) + 1, (void **) &tmp)
- == SUCCESS) {
+ == SUCCESS)
zend_hash_del(&EG(symbol_table), variable, strlen(variable) + 1);
- }
efree(variable);
}
}
{
if (PS(mod_data))
PS(mod)->close(&PS(mod_data));
- if (PS(entropy_file)) efree(PS(entropy_file));
- if (PS(extern_referer_chk)) efree(PS(extern_referer_chk));
- if (PS(save_path)) efree(PS(save_path));
- if (PS(session_name)) efree(PS(session_name));
- if (PS(id)) efree(PS(id));
+ if (PS(id))
+ efree(PS(id));
+ efree(PS(entropy_file));
+ efree(PS(extern_referer_chk));
+ efree(PS(save_path));
+ efree(PS(session_name));
efree(PS(cache_limiter));
efree(PS(cookie_path));
efree(PS(cookie_domain));
return SUCCESS;
}
-
- if (INI_INT("session.auto_start")) {
+ if (INI_INT("session.auto_start"))
_php_session_start(PSLS_C);
- }
return SUCCESS;
}