purge first url only once
authorGabriel Wicke <gwicke@users.mediawiki.org>
Tue, 9 Mar 2004 14:00:37 +0000 (14:00 +0000)
committerGabriel Wicke <gwicke@users.mediawiki.org>
Tue, 9 Mar 2004 14:00:37 +0000 (14:00 +0000)
includes/GlobalFunctions.php

index f518751..e67e778 100644 (file)
@@ -763,7 +763,10 @@ function wfPurgeSquidServers ($urlArr) {
        global  $wgSquidServers;
        $maxsocketspersquid = 8; //  socket cap per Squid
        $urlspersocket = 400; // 400 seems to be a good tradeoff, opening a socket takes a while
-       $sockspersq =  ceil(count($urlArr) / $urlspersocket );
+       $firsturl = $urlArr[0];
+       unset($urlArr[0]);
+       $urlArr = array_values($urlArr);
+       $sockspersq =  max(ceil(count($urlArr) / $urlspersocket ),1);
        if ($sockspersq == 1) {
                /* the most common case */
                $urlspersocket = count($urlArr);
@@ -788,7 +791,7 @@ function wfPurgeSquidServers ($urlArr) {
                                        $failed = true;
                                        $totalsockets -= $sockspersq;
                                } else {
-                                       @fputs($socket,"PURGE " . $urlArr[0] . " HTTP/1.0\r\n".
+                                       @fputs($socket,"PURGE " . $firsturl . " HTTP/1.0\r\n".
                                        "Connection: Keep-Alive\r\n\r\n");
                                        $res = @fread($socket,512);
                                        /* Squid only returns http headers with 200 or 404 status, 
@@ -813,7 +816,7 @@ function wfPurgeSquidServers ($urlArr) {
                }
        }
 
-       if ($urlspersocket > 1) {
+       if ($urlspersocket > 0) {
                /* now do the heavy lifting. The fread() relies on Squid returning only the headers */
                for ($r=0;$r < $urlspersocket;$r++) {
                        for ($s=0;$s < $totalsockets;$s++) {