mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-17 22:39:03 +02:00
Fixed the computation of IPs in a subnet that failed (returned negative numbers) on some versions of PHP compiled in 32-bit.
SVN:trunk[1469]
This commit is contained in:
@@ -451,9 +451,9 @@ class Subnet extends cmdbAbstractObject
|
||||
$bit_ip = ip2long($this->Get('ip'));
|
||||
$bit_mask = ip2long($this->Get('ip_mask'));
|
||||
|
||||
$iIPMin = ($bit_ip & $bit_mask) + 1; // exclude the first one: identifies the subnet itsel
|
||||
$iIPMax = ($bit_ip | (~$bit_mask)) - 1; // exclude the last one : reserved for DHCP
|
||||
|
||||
$iIPMin = sprintf('%u', ($bit_ip & $bit_mask) | 1); // exclude the first one: identifies the subnet itself
|
||||
$iIPMax = sprintf('%u', (($bit_ip | (~$bit_mask))) & 0xfffffffe); // exclude the last one : broadcast address
|
||||
|
||||
$sIPMin = long2ip($iIPMin);
|
||||
$sIPMax = long2ip($iIPMax);
|
||||
|
||||
@@ -465,7 +465,7 @@ class Subnet extends cmdbAbstractObject
|
||||
$oBlock->Display($oPage, 'nwif', array('menu' => false));
|
||||
|
||||
$iCountUsed = $oIfSet->Count();
|
||||
$iCountRange = $iIPMax - $iIPMin;
|
||||
$iCountRange = $iIPMax - $iIPMin; // On 32-bit systems the substraction will be computed using floats for values greater than PHP_MAX_INT;
|
||||
$iFreeCount = $iCountRange - $iCountUsed;
|
||||
|
||||
$oPage->SetCurrentTab(Dict::S('Class:Subnet/Tab:FreeIPs'));
|
||||
|
||||
Reference in New Issue
Block a user