Revert r19877; no reason is given for it but it breaks things such as parameter subst...
[lhc/web/wiklou.git] / includes / SquidUpdate.php
index 26e00e2..700fc8e 100644 (file)
@@ -1,17 +1,15 @@
 <?php
 /**
  * See deferred.txt
- * @package MediaWiki
  */
 
 /**
  *
- * @package MediaWiki
  */
 class SquidUpdate {
        var $urlArr, $mMaxTitles;
 
-       function SquidUpdate( $urlArr = Array(), $maxTitles = false ) {
+       function __construct( $urlArr = Array(), $maxTitles = false ) {
                global $wgMaxSquidPurgeTitles;
                if ( $maxTitles === false ) {
                        $this->mMaxTitles = $wgMaxSquidPurgeTitles;
@@ -29,9 +27,7 @@ class SquidUpdate {
                wfProfileIn( $fname );
 
                # Get a list of URLs linking to this page
-               $id = $title->getArticleID();
-
-               $dbr =& wfGetDB( DB_SLAVE );
+               $dbr = wfGetDB( DB_SLAVE );
                $res = $dbr->select( array( 'links', 'page' ),
                        array( 'page_namespace', 'page_title' ),
                        array(
@@ -201,9 +197,11 @@ class SquidUpdate {
                $htcpOpCLR = 4;                 // HTCP CLR
 
                // FIXME PHP doesn't support these socket constants (include/linux/in.h)
-               define( "IPPROTO_IP", 0 );
-               define( "IP_MULTICAST_LOOP", 34 );
-               define( "IP_MULTICAST_TTL", 33 );
+               if( !defined( "IPPROTO_IP" ) ) {
+                       define( "IPPROTO_IP", 0 );
+                       define( "IP_MULTICAST_LOOP", 34 );
+                       define( "IP_MULTICAST_TTL", 33 );
+               }
 
                // pfsockopen doesn't work because we need set_sock_opt
                $conn = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP );
@@ -215,6 +213,9 @@ class SquidUpdate {
                                        $wgHTCPMulticastTTL );
 
                        foreach ( $urlArr as $url ) {
+                               if( !is_string( $url ) ) {
+                                       wfDebugDieBacktrace( 'Bad purge URL' );
+                               }
                                $url = SquidUpdate::expand( $url );
                                
                                // Construct a minimal HTCP request diagram
@@ -222,8 +223,8 @@ class SquidUpdate {
                                // Opcode 'CLR', no response desired, no auth
                                $htcpTransID = rand();
 
-                               $htcpSpecifier = pack( 'na3na*na8n',
-                                       3, 'GET', strlen( $url ), $url,
+                               $htcpSpecifier = pack( 'na4na*na8n',
+                                       4, 'HEAD', strlen( $url ), $url,
                                        8, 'HTTP/1.0', 0 );
 
                                $htcpDataLen = 8 + 2 + strlen( $htcpSpecifier );