From ea33dc3d0771de6cb121c8a8d3007a70a08e44dc Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Wed, 30 Jun 2004 03:39:48 +0000 Subject: [PATCH] Limit squid purging --- includes/DefaultSettings.php | 4 ++++ includes/SquidUpdate.php | 33 +++++++++++++++++++++++---------- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index e57244c6d7..f982827a02 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -218,6 +218,10 @@ $wgCookieExpiration = 2592000; # don't specify ports here (80 is default) # $wgSquidServers = array('127.0.0.1'); +# Maximum number of titles to purge in any one client operation +$wgMaxSquidPurgeTitles = 400; + + # Set to set an explicit domain on the login cookies # eg, "justthis.domain.org" or ".any.subdomain.net" $wgCookieDomain = ''; diff --git a/includes/SquidUpdate.php b/includes/SquidUpdate.php index bb9002920d..7d5a3ef2aa 100644 --- a/includes/SquidUpdate.php +++ b/includes/SquidUpdate.php @@ -2,9 +2,18 @@ # See deferred.doc class SquidUpdate { - var $urlArr; + var $urlArr, $mMaxTitles; - function SquidUpdate( $urlArr = Array() ) { + function SquidUpdate( $urlArr = Array(), $maxTitles = false ) { + global $wgMaxSquidPurgeTitles; + if ( $maxTitles === false ) { + $this->mMaxTitles = $wgMaxSquidPurgeTitles; + } else { + $this->mMaxTitles = $maxTitles; + } + if ( count( $urlArr ) > $this->mMaxTitles ) { + $urlArr = array_slice( $urlArr, 0, $this->mMaxTitles ); + } $this->urlArr = $urlArr; } @@ -14,10 +23,12 @@ class SquidUpdate { $sql = "SELECT cur_namespace,cur_title FROM links,cur WHERE l_to={$id} and l_from=cur_id" ; $res = wfQuery ( $sql, DB_READ ) ; $blurlArr = $title->getSquidURLs(); - while ( $BL = wfFetchObject ( $res ) ) - { - $tobj = Title::makeTitle( $BL->cur_namespace, $BL->cur_title ) ; - $blurlArr[] = $tobj->getInternalURL(); + if ( wfNumRows( $res ) <= $this->mMaxTitles ) { + while ( $BL = wfFetchObject ( $res ) ) + { + $tobj = Title::makeTitle( $BL->cur_namespace, $BL->cur_title ) ; + $blurlArr[] = $tobj->getInternalURL(); + } } wfFreeResult ( $res ) ; return new SquidUpdate( $blurlArr ); @@ -29,10 +40,12 @@ class SquidUpdate { $sql = "SELECT cur_namespace,cur_title FROM brokenlinks,cur WHERE bl_to={$encTitle} AND bl_from=cur_id"; $res = wfQuery( $sql, DB_READ ); $blurlArr = array(); - while ( $BL = wfFetchObject( $res ) ) - { - $tobj = Title::makeTitle( $BL->cur_namespace, $BL->cur_title ); - $blurlArr[] = $tobj->getInternalURL(); + if ( wfNumRows( $res ) <= $this->mMaxTitles ) { + while ( $BL = wfFetchObject( $res ) ) + { + $tobj = Title::makeTitle( $BL->cur_namespace, $BL->cur_title ); + $blurlArr[] = $tobj->getInternalURL(); + } } wfFreeResult( $res ); return new SquidUpdate( $blurlArr ); -- 2.20.1