Ignore:
Timestamp:
Nov 2, 2009, 8:46:54 PM (11 years ago)
Author:
cedric@…
Message:

attention fuite de session entre caches :
un cache public calcule en background par un auteur connecte etait suceptible de contenir du contenu concernant cet auteur
on isole la session en la vidant avant le calcul des caches en background, et en restaurant a la fin du calcul pour les autres cron

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cache_cool/cache_cool_options.php

    r32576 r32617  
    7171                        return;
    7272                }
    73                 $background = true;
    74                 $processing = true; // indiquer qu'on est deja en differe en cas de reentrance
     73                if (!$processing){
     74                        $background = true;
     75                        // vider la session pour calculer dans le bon contexte
     76                        $sessionv = $GLOBALS['visiteur_session'];
     77                        $sessiona = $GLOBALS['auteur_session'];
     78                        unset($GLOBALS['visiteur_session']);
     79                        unset($GLOBALS['auteur_session']);
     80                        $processing = true; // indiquer qu'on est deja en differe en cas de reentrance
     81                }
    7582        }
    7683
     
    8491                // pour ne pas polluer les calculs suivants eventuels qui n'ont rien a voir
    8592                unset($GLOBALS['cache_utilise_session']);
     93                // restaurer la session
     94                $GLOBALS['visiteur_session'] = $sessionv;
     95                $GLOBALS['auteur_session'] = $sessiona;
    8696        }
    8797        return $page;
Note: See TracChangeset for help on using the changeset viewer.