cvs: php4 /ext/session php_session.h session.c
| From: | Hartmut Holzgraefe | Date: | Wed, 11 Jul 2001 13:27:31 +0000 |
| Subject: | cvs: php4 /ext/session php_session.h session.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-6183@lists.php.net to get a copy of this message | ||
hholzgra Wed Jul 11 09:27:31 2001 EDT
Modified files:
/php4/ext/session php_session.h session.c
Log:
cleanup in preparation for session_readonly()
Index: php4/ext/session/php_session.h
diff -u php4/ext/session/php_session.h:1.44 php4/ext/session/php_session.h:1.45
--- php4/ext/session/php_session.h:1.44 Wed Jul 4 11:30:19 2001
+++ php4/ext/session/php_session.h Wed Jul 11 09:27:25 2001
@@ -59,6 +59,12 @@
#x, ps_open_##x, ps_close_##x, ps_read_##x, ps_write_##x, \
ps_delete_##x, ps_gc_##x
+typedef enum {
+ php_session_disabled,
+ php_session_none,
+ php_session_active,
+} php_session_status;
+
typedef struct {
char *save_path;
char *session_name;
@@ -70,11 +76,11 @@
long cookie_lifetime;
char *cookie_path;
char *cookie_domain;
- zend_bool cookie_secure;
+ zend_bool cookie_secure;
ps_module *mod;
void *mod_data;
HashTable vars;
- int nr_open_sessions;
+ php_session_status session_status;
long gc_probability;
long gc_maxlifetime;
int module_number;
Index: php4/ext/session/session.c
diff -u php4/ext/session/session.c:1.215 php4/ext/session/session.c:1.216
--- php4/ext/session/session.c:1.215 Wed Jul 4 11:30:19 2001
+++ php4/ext/session/session.c Wed Jul 11 09:27:27 2001
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: session.c,v 1.215 2001/07/04 15:30:19 sas Exp $ */
+/* $Id: session.c,v 1.216 2001/07/11 13:27:27 hholzgra Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -803,7 +803,7 @@
int lensess;
ELS_FETCH();
- if (PS(nr_open_sessions) != 0)
+ if (PS(session_status) != php_session_none)
return;
lensess = strlen(PS(session_name));
@@ -902,7 +902,7 @@
REGISTER_STRING_CONSTANT("SID", empty_string, 0);
PS(define_sid) = define_sid;
- PS(nr_open_sessions)++;
+ PS(session_status)= php_session_active;
php_session_cache_limiter(PSLS_C);
php_session_initialize(PSLS_C);
@@ -926,7 +926,7 @@
{
zend_bool retval = SUCCESS;
- if (PS(nr_open_sessions) == 0) {
+ if (PS(session_status) != php_session_active) {
php_error(E_WARNING, "Trying to destroy uninitialized session");
return FAILURE;
}
@@ -1069,7 +1069,7 @@
if (ZEND_NUM_ARGS() != 6 || zend_get_parameters_array_ex(6, args) == FAILURE)
WRONG_PARAM_COUNT;
- if (PS(nr_open_sessions) > 0)
+ if (PS(session_status) != php_session_none)
RETURN_FALSE;
zend_alter_ini_entry("session.save_handler", sizeof("session.save_handler"),
"user", sizeof("user")-1, PHP_INI_USER, PHP_INI_STAGE_RUNTIME);
@@ -1199,7 +1199,7 @@
WRONG_PARAM_COUNT;
}
- if (PS(nr_open_sessions) == 0)
+ if (PS(session_status) == php_session_none)
php_session_start(PSLS_C);
for (i = 0; i < argc; i++) {
@@ -1315,7 +1315,7 @@
{
PSLS_FETCH();
- if (PS(define_sid) && PS(nr_open_sessions) > 0)
+ if (PS(define_sid) && (PS(session_status) == php_session_active))
*new = url_adapt_ext_ex(src, srclen, PS(session_name), PS(id), newlen);
}
@@ -1323,7 +1323,7 @@
{
PSLS_FETCH();
- if (PS(define_sid) && PS(nr_open_sessions) > 0)
+ if (PS(define_sid) && (PS(session_status) == php_session_active))
*new = url_adapt_single_url(url, urllen, PS(session_name), PS(id), newlen);
}
@@ -1347,7 +1347,7 @@
ulong num_key;
PSLS_FETCH();
- if (PS(nr_open_sessions) == 0)
+ if (PS(session_status) == php_session_none)
RETURN_FALSE;
for (zend_hash_internal_pointer_reset(&PS(vars));
@@ -1368,7 +1368,7 @@
zend_hash_init(&PS(vars), 0, NULL, NULL, 0);
PS(define_sid) = 0;
PS(id) = NULL;
- PS(nr_open_sessions) = 0;
+ PS(session_status) = php_session_none;
PS(mod_data) = NULL;
}
@@ -1398,7 +1398,7 @@
if (!PS(mod)) {
/* current status is unusable */
- PS(nr_open_sessions) = -1;
+ PS(session_status) = php_session_disabled;
return SUCCESS;
}
}
@@ -1412,9 +1412,9 @@
static void php_session_flush(PSLS_D)
{
- if (PS(nr_open_sessions) > 0) {
+ if(PS(session_status)==php_session_active) {
php_session_save_current_state(PSLS_C);
- PS(nr_open_sessions)--;
+ PS(session_status)=php_session_none;
}
}