summaryrefslogtreecommitdiff
path: root/ext
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 /ext
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.
Diffstat (limited to 'ext')
-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;