r1636 + fix 'iprange' page bypass arg
authorDenis Ovsienko <infrastation@yandex.ru>
Thu, 31 Jan 2008 15:09:37 +0000 (15:09 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Thu, 31 Jan 2008 15:09:37 +0000 (15:09 +0000)
+ initial code for DNS PTR resolving

inc/functions.php
inc/interface.php
inc/navigation.php

index 2a2f1ba0119f4c7e038343221ce9a6287dad4627..77dc2d0dd20348a4047719717ee23fc06c2ba5c6 100644 (file)
@@ -1166,4 +1166,9 @@ function email_regex_simple ()
        "\@((?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?))"; # @domain
 }
 
+function getPTRRecordFor ()
+{
+       return '';
+}
+
 ?>
index ab3a7d4d0d682731fdaac459496e988b64802ab5..40cea53feb36857ffb7447f843d279a4874d779e 100644 (file)
@@ -1777,11 +1777,10 @@ function renderAddNewRange ()
        echo "</table>";
 }
 
-function renderIPRange ()
+function renderIPRange ($id)
 {
        global $root;
        $maxperpage = getConfigVar ('IPV4_ADDRS_PER_PAGE');
-       $id = $_REQUEST['id'];
        if (isset($_REQUEST['pg']))
                $page = $_REQUEST['pg'];
        else
@@ -1858,10 +1857,9 @@ function renderIPRange ()
        
 }
 
-function renderIPRangeProperties ()
+function renderIPRangeProperties ($id)
 {
        global $pageno, $tabno;
-       $id = $_REQUEST['id'];
        showMessageOrError();
        $range = getIPRange($id);
        echo "<center><h1>${range['ip']}/${range['mask']}</h1></center>\n";
@@ -4271,4 +4269,51 @@ function renderRSPoolRSInServiceForm ($pool_id = 0)
        echo "</table>\n</form>";
 }
 
+function renderLivePTR ($id = 0)
+{
+       if ($id == 0)
+       {
+               showError ("Invalid argument", __FUNCTION__);
+               return;
+       }
+       global $root;
+       $maxperpage = getConfigVar ('IPV4_ADDRS_PER_PAGE');
+       $range = getIPRange ($id);
+       echo "<center><h1>${range['ip']}/${range['mask']}</h1><h2>${range['name']}</h2></center>\n";
+
+       $startip = $range['ip_bin'] & $range['mask_bin'];
+       $endip = $range['ip_bin'] | $range['mask_bin_inv'];
+       $realstartip = $startip;
+       $realendip = $endip;
+       $numpages = 0;
+       if ($endip - $startip > $maxperpage)
+       {
+               $numpages = ($endip - $startip) / $maxperpage;
+               $startip = $startip + $page * $maxperpage;
+               $endip = $startip + $maxperpage - 1;
+       }
+       echo "<center>";
+       if ($numpages)
+               echo '<h3>' . long2ip ($startip) . ' ~ ' . long2ip ($endip) . '</h3>';
+       for ($i=0; $i<$numpages; $i++)
+               if ($i == $page)
+                       echo "<b>$i</b> ";
+               else
+                       echo "<a href='${root}?page=iprange&id=$id&pg=$i'>$i</a> ";
+       echo "</center>";
+       echo "<table class='widetable' border=0 cellspacing=0 cellpadding=5 align='center'>\n";
+       echo "<tr><th>address</th><th>current name</th><th>DNS data</th></tr>\n";
+       for ($ip = $startip; $ip <= $endip; $ip++)
+       {
+               $addr = $range['addrlist'][$ip];
+               echo "<tr><td><a href='${root}?page=ipaddress&ip=" . long2ip ($ip) . "'>" . long2ip ($ip) . "</a></td>";
+               echo "<td>${addr['name']}</td><td>";
+               $record = getPTRRecordFor (long2ip ($ip));
+               echo empty ($record) ? '&nbsp;' : $record;
+               echo "</td></tr>\n";
+       }
+       echo "</table>";
+
+}
+
 ?>
index 3952eba7606e1327b1a81b535bf52e47585ca7d0..87939bb22e2889e2a3127387d0af5ecd46970399 100644 (file)
@@ -118,10 +118,13 @@ $ophandler['ipv4space']['newrange']['delRange'] = 'delRange';
 $page['iprange']['title_handler'] = 'dynamic_title_iprange';
 $page['iprange']['parent'] = 'ipv4space';
 $page['iprange']['bypass'] = 'id';
+$page['iprange']['bypass_type'] = 'uint';
 $tab['iprange']['default'] = 'Browse';
 $tab['iprange']['properties'] = 'Properties';
+$tab['iprange']['liveptr'] = 'Live PTR';
 $tabhandler['iprange']['default'] = 'renderIPRange';
 $tabhandler['iprange']['properties'] = 'renderIPRangeProperties';
+$tabhandler['iprange']['liveptr'] = 'renderLivePTR';
 $ophandler['iprange']['properties']['editRange'] = 'editRange';
 
 $page['ipaddress']['title_handler'] = 'dynamic_title_ipaddress';