cvs: php4 /ext/session php_session.h session.c
| From: | Sascha Schumann | Date: | Tue, 18 Feb 2003 19:13:52 +0000 |
| Subject: | cvs: php4 /ext/session php_session.h session.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-18959@lists.php.net to get a copy of this message | ||
sas Tue Feb 18 14:13:52 2003 EDT
Modified files:
/php4/ext/session php_session.h session.c
Log:
Remember whether to send a cookie, so that we send out the correct
session id. Also improve check for active session
Index: php4/ext/session/php_session.h
diff -u php4/ext/session/php_session.h:1.89 php4/ext/session/php_session.h:1.90
--- php4/ext/session/php_session.h:1.89 Tue Feb 18 13:50:43 2003
+++ php4/ext/session/php_session.h Tue Feb 18 14:13:49 2003
@@ -121,6 +121,7 @@
long hash_func;
long hash_bits_per_character;
+ int send_cookie;
} php_ps_globals;
typedef php_ps_globals zend_ps_globals;
Index: php4/ext/session/session.c
diff -u php4/ext/session/session.c:1.352 php4/ext/session/session.c:1.353
--- php4/ext/session/session.c:1.352 Tue Feb 18 13:50:44 2003
+++ php4/ext/session/session.c Tue Feb 18 14:13:49 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: session.c,v 1.352 2003/02/18 18:50:44 sas Exp $ */
+/* $Id: session.c,v 1.353 2003/02/18 19:13:49 sas Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1023,7 +1023,6 @@
zval **ppid;
zval **data;
char *p;
- int send_cookie = 1;
int define_sid = 1;
int module_number = PS(module_number);
int nrand;
@@ -1031,6 +1030,7 @@
PS(apply_trans_sid) = PS(use_trans_sid);
+ PS(send_cookie) = 1;
if (PS(session_status) != php_session_none)
return;
@@ -1050,7 +1050,7 @@
lensess + 1, (void **) &ppid) == SUCCESS) {
PPID2SID;
PS(apply_trans_sid) = 0;
- send_cookie = 0;
+ PS(send_cookie) = 0;
define_sid = 0;
}
@@ -1061,7 +1061,7 @@
zend_hash_find(Z_ARRVAL_PP(data), PS(session_name),
lensess + 1, (void **) &ppid) == SUCCESS) {
PPID2SID;
- send_cookie = 0;
+ PS(send_cookie) = 0;
}
if (!PS(use_only_cookies) && !PS(id) &&
@@ -1071,7 +1071,7 @@
zend_hash_find(Z_ARRVAL_PP(data), PS(session_name),
lensess + 1, (void **) &ppid) == SUCCESS) {
PPID2SID;
- send_cookie = 0;
+ PS(send_cookie) = 0;
}
}
@@ -1104,20 +1104,20 @@
strstr(Z_STRVAL_PP(data), PS(extern_referer_chk)) == NULL) {
efree(PS(id));
PS(id) = NULL;
- send_cookie = 1;
+ PS(send_cookie) = 1;
if (PS(use_trans_sid))
PS(apply_trans_sid) = 1;
}
php_session_initialize(TSRMLS_C);
- if (!PS(use_cookies) && send_cookie) {
+ if (!PS(use_cookies) && PS(send_cookie)) {
if (PS(use_trans_sid))
PS(apply_trans_sid) = 1;
- send_cookie = 0;
+ PS(send_cookie) = 0;
}
- if (send_cookie) {
+ if (PS(send_cookie)) {
php_session_send_cookie(TSRMLS_C);
}
@@ -1363,10 +1363,15 @@
Update the current session id with a newly generated one. */
PHP_FUNCTION(session_regenerate_id)
{
- if (PS(mod)) {
+ if (PS(session_status) == php_session_active) {
if (PS(id)) efree(PS(id));
PS(id) = PS(mod)->s_create_sid(&PS(mod_data), NULL TSRMLS_CC);
+
+ if (PS(send_cookie)) {
+ php_session_send_cookie(TSRMLS_C);
+ }
+
RETURN_TRUE;
}
RETURN_FALSE;