jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/319785 )

Change subject: Use IPSet for matching IPv6 ranges
......................................................................


Use IPSet for matching IPv6 ranges

Change-Id: I98ca8943ac9430eaf4690e2fb174fbef7718f966
---
M TrustedXFF.body.php
1 file changed, 10 insertions(+), 5 deletions(-)

Approvals:
  Reedy: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/TrustedXFF.body.php b/TrustedXFF.body.php
index d907ed5..4042400 100644
--- a/TrustedXFF.body.php
+++ b/TrustedXFF.body.php
@@ -1,6 +1,7 @@
 <?php
 
 use Cdb\Reader as CdbReader;
+use IPSet\IPSet;
 
 class TrustedXFF {
        static $instance;
@@ -24,6 +25,11 @@
                        $wgTrustedXffFile = $IP . '/cache/trusted-xff.cdb';
                }
        }
+
+       /**
+        * @var IPSet|null
+        */
+       private static $ipv6Set;
 
        /**
         * @param string $ip
@@ -80,12 +86,11 @@
 
                // Try IPv6 ranges
                if ( substr( $hex, 0, 2 ) === 'v6' ) {
-                       foreach ( self::$ipv6Ranges as $range ) {
-                               list( $start, $end ) = IP::parseRange( $range );
-                               if ( $hex >= $start && $hex <= $end ) {
-                                       return true;
-                               }
+                       if ( !self::$ipv6Set ) {
+                               self::$ipv6Set = new IPSet( self::$ipv6Ranges );
                        }
+
+                       return self::$ipv6Set->match( $ip );
                }
 
                return false;

-- 
To view, visit https://gerrit.wikimedia.org/r/319785
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I98ca8943ac9430eaf4690e2fb174fbef7718f966
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/TrustedXFF
Gerrit-Branch: master
Gerrit-Owner: Legoktm <lego...@member.fsf.org>
Gerrit-Reviewer: Reedy <re...@wikimedia.org>
Gerrit-Reviewer: Tim Starling <tstarl...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to