r2212 - move loadIPv4AddrList() to functions.php
authorDenis Ovsienko <infrastation@yandex.ru>
Mon, 15 Sep 2008 09:17:33 +0000 (09:17 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Mon, 15 Sep 2008 09:17:33 +0000 (09:17 +0000)
 - calculate %% used for spare networks

inc/database.php
inc/functions.php
inc/interface.php

index d8b04148c78dad3acc2bd4d599825b2194a20900..7eca8719d5871b61a09f18b4b0be65271a678fce 100644 (file)
@@ -1106,12 +1106,6 @@ function getIPv4NetworkInfo ($id = 0)
        return $ret;
 }
 
-function loadIPv4AddrList (&$netinfo)
-{
-       loadOwnIPv4Addresses ($netinfo);
-       markupIPv4AddrList ($netinfo['addrlist']);
-}
-
 function getIPv4Address ($dottedquad = '')
 {
        if ($dottedquad == '')
index 8305106f644b767ecb0e8681beea17a90c9809e2..f14f0e763860a04379cfc559bc0d2caee92c55b0 100644 (file)
@@ -1437,7 +1437,7 @@ function iptree_fill (&$netdata)
 {
        if (!isset ($netdata['kids']) or empty ($netdata['kids']))
                return;
-       // If we relly have nested prefixes, they must fit into the tree.
+       // If we really have nested prefixes, they must fit into the tree.
        $worktree = array
        (
                'ip_bin' => $netdata['ip_bin'],
@@ -1487,9 +1487,16 @@ function iptree_embed (&$node, $pfx)
        // split?
        if (!isset ($node['right']))
        {
-               $node['right']['mask'] = $node['left']['mask'] = $node['mask'] + 1;
+               // Fill in db_first/db_last to make it possible to run scanIPv4Space() on the node.
+               $node['left']['mask'] = $node['mask'] + 1;
                $node['left']['ip_bin'] = $node['ip_bin'];
+               $node['left']['db_first'] = sprintf ('%u', $node['left']['ip_bin']);
+               $node['left']['db_last'] = sprintf ('%u', $node['left']['ip_bin'] | binInvMaskFromDec ($node['left']['mask']));
+
+               $node['right']['mask'] = $node['mask'] + 1;
                $node['right']['ip_bin'] = $node['ip_bin'] + binInvMaskFromDec ($node['mask'] + 1) + 1;
+               $node['right']['db_first'] = sprintf ('%u', $node['right']['ip_bin']);
+               $node['right']['db_last'] = sprintf ('%u', $node['right']['ip_bin'] | binInvMaskFromDec ($node['right']['mask']));
        }
 
        // repeat!
@@ -1516,6 +1523,11 @@ function treeApplyFunc (&$tree, $func)
        }
 }
 
+function loadIPv4AddrList (&$netinfo)
+{
+       loadOwnIPv4Addresses ($netinfo);
+       markupIPv4AddrList ($netinfo['addrlist']);
+}
 
 function countOwnIPv4Addresses (&$node)
 {
index bf8f0710a66977efdcb3bd9e1bb3b8b0117d4958..06ff5460e211ece778b40e55c9e5c3384cad0d10 100644 (file)
@@ -1994,10 +1994,10 @@ function renderIPv4SpaceRecords ($tree, &$tagcache, $baseurl, $level = 1)
        foreach ($tree as $item)
        {
                $total = $item['addrt'];
+               loadIPv4AddrList ($item); // necessary to compute router list and address counter
+               $used = $item['addrc'];
                if (isset ($item['id']))
                {
-                       loadIPv4AddrList ($item);
-                       $used = $item['addrc'];
                        if ($item['symbol'] == 'node-collapsed')
                                $expandurl = "${baseurl}&eid=" . $item['id'];
                        elseif ($item['symbol'] == 'node-expanded')
@@ -2017,7 +2017,6 @@ function renderIPv4SpaceRecords ($tree, &$tagcache, $baseurl, $level = 1)
                }
                else
                {
-                       $used = 0;
                        echo "<tr valign=top>";
                        printIPv4NetInfoTDs ($item, 'tdleft sparenetwork', $level, $item['symbol']);
                        echo "<td class=tdcenter>";