summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRasmus Lerdorf <rasmus@php.net>2006-02-10 07:39:13 +0000
committerRasmus Lerdorf <rasmus@php.net>2006-02-10 07:39:13 +0000
commit6cc9f92d161b84ff62d0ab6284ca47eafca2996f (patch)
treef09ba86c8a8f9d27b2bba2ee51a8c8ea9ab9339d
parent8fe545aab73e2baeb85e05a68df6600d9b3ae883 (diff)
downloadphp-git-6cc9f92d161b84ff62d0ab6284ca47eafca2996f.tar.gz
(Missing patch from the PHP 4 tree that got lost in the shuffle)
See: http://cvs.php.net/viewcvs.cgi/php-src/ext/session/session.c?r1=1.336.2.39&r2=1.336.2.40 - fix logic. if the client already sent us the cookie, we don't need to send it again. if the id has been changed, we need to update the client side.
-rw-r--r--ext/session/session.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index d546fed0b1..a15549c433 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -1088,8 +1088,9 @@ static void php_session_reset_id(TSRMLS_D)
{
int module_number = PS(module_number);
- if (PS(use_cookies)) {
+ if (PS(use_cookies) && PS(send_cookie)) {
php_session_send_cookie(TSRMLS_C);
+ PS(send_cookie) = 0;
}
/* if the SID constant exists, destroy it. */
@@ -1485,6 +1486,7 @@ PHP_FUNCTION(session_regenerate_id)
PS(id) = PS(mod)->s_create_sid(&PS(mod_data), NULL TSRMLS_CC);
+ PS(send_cookie) = 1;
php_session_reset_id(TSRMLS_C);
RETURN_TRUE;