]> granicus.if.org Git - php/commitdiff
(Missing patch from the PHP 4 tree that got lost in the shuffle)
authorRasmus Lerdorf <rasmus@php.net>
Fri, 10 Feb 2006 07:41:59 +0000 (07:41 +0000)
committerRasmus Lerdorf <rasmus@php.net>
Fri, 10 Feb 2006 07:41:59 +0000 (07:41 +0000)
 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.

ext/session/session.c

index 8fb5e70d9e784787ce92db82db0a2fb9cd379ce0..35c1d21c454bee63ea350866b7790b42caa279f5 100644 (file)
@@ -1090,8 +1090,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. */
@@ -1487,6 +1488,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;