Merge "Fix Block::newLoad for IPv6 range blocks"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 7 May 2019 17:50:21 +0000 (17:50 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 7 May 2019 17:50:21 +0000 (17:50 +0000)
1  2 
includes/Block.php

@@@ -387,11 -388,13 +387,12 @@@ class Block 
                        if ( $block->getType() == self::TYPE_RANGE ) {
                                # This is the number of bits that are allowed to vary in the block, give
                                # or take some floating point errors
-                               $end = Wikimedia\base_convert( $block->getRangeEnd(), 16, 10 );
-                               $start = Wikimedia\base_convert( $block->getRangeStart(), 16, 10 );
+                               $prefix = 'v6-';
+                               $end = Wikimedia\base_convert( ltrim( $block->getRangeEnd(), $prefix ), 16, 10 );
+                               $start = Wikimedia\base_convert( ltrim( $block->getRangeStart(), $prefix ), 16, 10 );
                                $size = log( $end - $start + 1, 2 );
  
 -                              # This has the nice property that a /32 block is ranked equally with a
 -                              # single-IP block, which is exactly what it is...
 +                              # Rank a range block covering a single IP equally with a single-IP block
                                $score = self::TYPE_RANGE - 1 + ( $size / 128 );
  
                        } else {