Просмотр исходного кода

actually support the short CIDR notation

El RIDO 4 лет назад
Родитель
Сommit
3e02818335
2 измененных файлов с 6 добавлено и 3 удалено
  1. 4 1
      lib/Persistence/TrafficLimiter.php
  2. 2 2
      tst/Persistence/TrafficLimiterTest.php

+ 4 - 1
lib/Persistence/TrafficLimiter.php

@@ -146,7 +146,10 @@ class TrafficLimiter extends AbstractPersistence
             $ipRange = trim($ipRange);
         }
         $address = Factory::parseAddressString($_SERVER[self::$_ipKey]);
-        $range   = Factory::parseRangeString($ipRange, ParseStringFlag::IPV4_MAYBE_NON_DECIMAL);
+        $range   = Factory::parseRangeString(
+            $ipRange,
+            ParseStringFlag::IPV4_MAYBE_NON_DECIMAL | ParseStringFlag::IPV4SUBNET_MAYBE_COMPACT | ParseStringFlag::IPV4ADDRESS_MAYBE_NON_QUAD_DOTTED
+        );
 
         // address could not be parsed, we might not be in IP space and try a string comparison instead
         if (is_null($address)) {

+ 2 - 2
tst/Persistence/TrafficLimiterTest.php

@@ -57,7 +57,7 @@ class TrafficLimiterTest extends PHPUnit_Framework_TestCase
 
     public function testTrafficLimitExempted()
     {
-        TrafficLimiter::setExempted('1.2.3.4,10.10.10.0/24,2001:1620:2057::/48');
+        TrafficLimiter::setExempted('1.2.3.4,10.10.10/24,2001:1620:2057::/48');
         $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
         $this->assertTrue(TrafficLimiter::canPass(), 'first request may pass');
         try {
@@ -85,7 +85,7 @@ class TrafficLimiterTest extends PHPUnit_Framework_TestCase
 
     public function testTrafficLimitCreators()
     {
-        TrafficLimiter::setCreators('1.2.3.4,10.10.10.0/24,2001:1620:2057::/48');
+        TrafficLimiter::setCreators('1.2.3.4,10.10.10/24,2001:1620:2057::/48');
         $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
         try {
             $this->assertFalse(TrafficLimiter::canPass(), 'expected an exception');