r1283 + implemented automatic network and broadcast addresses markup
authorDenis Ovsienko <infrastation@yandex.ru>
Mon, 19 Nov 2007 09:51:57 +0000 (09:51 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Mon, 19 Nov 2007 09:51:57 +0000 (09:51 +0000)
inc/functions.php
inc/interface.php
inc/ophandlers.php

index f5679d709309ebaaf1ebf7f71a03be81cdf673a1..4b192f194a16665d171fb69062bfb93dc2b75a87 100644 (file)
@@ -358,7 +358,7 @@ function binInvMaskFromDec ($maskL)
        return $binmask;
 }
 
-function addRange ($range='', $name='')
+function addRange ($range='', $name='', $is_bcast = FALSE)
 {
        // $range is in x.x.x.x/x format, split into ip/mask vars
        $rangeArray = explode('/', $range);
@@ -421,6 +421,14 @@ function addRange ($range='', $name='')
        $query =
                "insert into IPRanges set ip=".sprintf('%u', $ipL).", mask='$maskL', name='$name'";
        $result = $dbxlink->exec ($query);
+
+       if ($is_bcast and $maskL < 31)
+       {
+               $network_addr = long2ip ($ipL);
+               $broadcast_addr = long2ip ($ipL | binInvMaskFromDec ($maskL));
+               updateAddress ($network_addr, 'network', 'yes');
+               updateAddress ($broadcast_addr, 'broadcast', 'yes');
+       }
        return '';
 }
 
index 4b551c5a860bd29b343c3896710d774f89d9e358..9dc52898d8a86c87193b73bf57971e91e7914b58 100644 (file)
@@ -1625,13 +1625,14 @@ function renderAddNewRange ()
 
        echo "<center><h2>Add New Range</h2></center>\n";
        echo "<table class='widetable' border=0 cellpadding=10 align='center'>\n";
-       echo "<tr><th>Address range</th><th>Name</th><th>&nbsp;</th></tr>\n";
+       echo "<tr><th>Address range</th><th>Name</th><th>C&gt;*</th><th>&nbsp;</th></tr>\n";
        echo "<form name='add_new_range' action='process.php'>\n";
        echo "<input type=hidden name=op value=addRange>\n";
        echo "<input type=hidden name=page value='${pageno}'>\n";
        echo "<input type=hidden name=tab value='${tabno}'>\n";
        echo "<tr><td class='tdcenter'><input type=text name='range' size=18 class='live-validate'></td>\n";
        echo "<td class='tdcenter'><input type=text name='name' size='20'></td>\n";
+       echo "<td class='tdcenter'><input type=checkbox name='is_bcast' checked></td>\n";
        echo "<td class='tdcenter'><input type=submit value='Add a new range'></td></tr>\n";
        echo "</form></table><br><br>\n";
 
index f24e243cf6491ac7280fe5910ffe53959fbed6c2..5b3ced1d6cdd2658f6b24407d5876bb7a35323fa 100644 (file)
@@ -408,7 +408,8 @@ function addNewRange ()
 
        $range = $_REQUEST['range'];
        $name = $_REQUEST['name'];
-       $error = addRange($range, $name);
+       $is_bcast = $_REQUEST['is_bcast'];
+       $error = addRange($range, $name, $is_bcast == 'on');
        if ($error != '')
        {
                return "${root}?page=${pageno}&tab=${tabno}&error=".urlencode($error);