|
@@ -246,6 +246,18 @@ class Pool implements TenancyIdTraitInterface, WorkflowInterface
|
|
|
if (!IpUtils::checkIp($this->firstIp, $this->subNet->getAddress()) || !IpUtils::checkIp($this->lastIp, $this->subNet->getAddress())) {
|
|
|
$context->addViolation('pool.ips.outrange');
|
|
|
}
|
|
|
+
|
|
|
+ foreach ($this->subNet->getIpPool() as $pool) {
|
|
|
+ if ($pool->getId() != $this->id) {
|
|
|
+ $poolFirstIP = ip2long($pool->getFirstIp());
|
|
|
+ $poolLastIP = ip2long($pool->getLastIp());
|
|
|
+ $firstIP = ip2long($this->firstIp);
|
|
|
+ $lastIP = ip2long($this->lastIp);
|
|
|
+ if (($poolFirstIP <= $firstIP && $poolLastIP >= $firstIP) || ($poolFirstIP <= $lastIP && $poolLastIP >= $lastIP)) {
|
|
|
+ $context->addViolation('pool.ips.invalid.range', ['%name%' => $pool->getName()]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|