echo "<h2>Routing</h2>";
}
-function CBFWInterfacesPage($urls)
-{
- if(isset($urls[1])) {
- switch($urls[1]) {
- case "edit":
- CBFWpageBuilder(null, "CBFWInterfacesPageEdit", null, null, $urls[2]);
- break;
- case "change":
- CBFWInterfacesChange();
- break;
- default:
- CBFWpageBuilder(null, "CBFWInterfacesPageDisplay");
- }
- } else {
- error_log("main interface page");
- CBFWpageBuilder(null, "CBFWInterfacesPageDisplay");
- }
-}
-
-function CBFWInterfacesChange()
-{
- global $BASE_URL, $MENU_ITEMS;
- $comms = new Comms();
-
- header("Location: $BASE_URL/interfaces");
-}
-
-function CBFWInterfacesPageEdit($urls)
-{
- global $BASE_URL, $MENU_ITEMS;
- $interface = $urls;
-
- $comms = new Comms();
-
- $config = getWebUserConfig();
- $boot_config = $comms->getConfig(1);
-
- if(isset($config["interface"]["dev"]["$interface"]["name"])) $name = $config["interface"]["dev"]["$interface"]["name"];
- else $name = "";
-
- $extra2 = "";
- if(file_exists("/sys/class/net/$interface/address")) {
- $extra2 = trim(file_get_contents("/sys/class/net/$interface/address"));
- }
-
- $extra = "";
- if(isset($boot_config["hardware"]["netdev"]["$interface"]["hwaddress"])) {
- $hwaddr = $boot_config["hardware"]["netdev"]["$interface"]["hwaddress"];
- $extra = " <i>Original address: $hwaddr</i>";
- if($hwaddr != $extra2 && $extra2 != "") {
- $extra .= " <i>Current Address: $hwaddr</i>";
- }
- }
- if(isset($config["interface"]["dev"]["$interface"]["hwaddress"])) $hwaddr = $config["interface"]["dev"]["$interface"]["hwaddress"];
-
- if(isset($config["interface"]["dev"]["$interface"]["zone"])) $zone = $config["interface"]["dev"]["$interface"]["zone"];
-
- if(isset($config["interface"]["dev"]["$interface"]["address4"])) $ip4 = $config["interface"]["dev"]["$interface"]["address4"];
-
- if(isset($config["interface"]["dev"]["$interface"]["address6"])) $ip6 = $config["interface"]["dev"]["$interface"]["address6"];
-
- if(isset($boot_config["hardware"]["netdev"]["$interface"]["speed"])) $speed = $boot_config["hardware"]["netdev"]["$interface"]["speed"];
- if(isset($boot_config["hardware"]["netdev"]["$interface"]["duplex"])) $duplex = $boot_config["hardware"]["netdev"]["$interface"]["duplex"];
- if(isset($config["interface"]["dev"]["$interface"]["speed"])) $speed = $config["interface"]["dev"]["$interface"]["speed"];
- if(isset($config["interface"]["dev"]["$interface"]["duplex"])) $duplex = $config["interface"]["dev"]["$interface"]["duplex"];
-
- echo "<h3>Edit Interface $interface</h3><br>";
- echo "<form method=\"post\" action=\"$BASE_URL/interfaces/change/$interface\">";
- echo "<table>";
- echo "<tr><td>Name</td><td><input type=\"text\" name=\"name\" value=\"$name\"></td></tr>";
- echo "<tr><td>HW Address</td><td><input type=\"text\" name=\"hwaddr\" value=\"$hwaddr\">$extra</td></tr>";
- echo "<tr><td>Zone</td><td><input type=\"text\" name=\"zone\" value=\"$zone\"></td></tr>";
- echo "<tr><td>IPv4 Address</td><td><input type=\"text\" name=\"ipv4addr\" value=\"$ip4\"></td></tr>";
- echo "<tr><td>IPv6 Address</td><td><input type=\"text\" name=\"ipv6addr\" value=\"$ip6\"></td></tr>";
- echo "<tr><td>Speed</td><td><select name=\"duplex\"><option value=\"auto\">Auto</option><option value=\"10\">10</option>";
- echo "<option value=\"100\">100</option><option value=\"1000\">1000</option><option value=\"10000\">10000</option></select></td></tr>";
- echo "<tr><td>Duplex</td><td><select name=\"duplex\"><option value=\"auto\">Auto</option><option value=\"full\">Full</option><option value=\"half\">Half</option></select></td></tr>";
- echo "</table>";
- echo "<input type=\"submit\" name=\"Change\" value=\"Change\"><br>";
- //echo "<a href=\"$BASE_URL/interfaces/\">Back</a>";
- echo "</form>";
-}
-
-function CBFWInterfacesPageDisplay()
-{
- global $BASE_URL, $MENU_ITEMS;
- $comms = new Comms();
-
- $config = getWebUserConfig();
- $boot_config = $comms->getConfig(1);
-
- // at the top, we put in the creation bits
- echo "<h2>Create Interface</h2>";
- echo "<li><a href=\"$BASE_URL/interfaces/create/bond\">Link Aggregation Group (bonded/teamed interfaces)</a><br>";
- echo "<li><a href=\"$BASE_URL/interfaces/create/vlan\">VLAN Tagged Sub Interfaces</a><br>";
- echo "<li><a href=\"$BASE_URL/interfaces/create/bridge\">Bridged Interfaces</a><br>";
- echo "<hr>";
-
- // now build an interface table
- $table = array();
- foreach($boot_config["hardware"]["netdev"] as $key=>$val) {
- $ename = $key;
- $table[$key]["realname"] = $val["name"];
- $table[$key]["name"] = $val["name"];
-
-
- // driver
- if(isset($val["driver"])) $table[$key]["type"] = $val["driver"];
- else $table[$key]["type"] = "Unknown";
-
- // hw address
- if(isset($val["hwaddress"])) $table[$key]["hwaddress"] = $val["hwaddress"];
-
- // current mtu
- if(isset($val["mtu"])) $table[$key]["mtu"] = $val["mtu"];
-
- // speed
- if(isset($val["speed"])) $table[$key]["speed"] = $val["speed"];
- else $table[$key]["speed"] = "default";
-
- // duplex
- if(isset($val["duplex"])) $table[$key]["duplex"] = $val["duplex"];
- else $table[$key]["duplex"] = "default";
- }
-
- foreach($config["interface"]["dev"] as $key => $val) {
- // TODO construction zone
- error_log("doing $key");
- if(isset($val["name"])) $table[$key]["name"] = $val["name"];
- if(isset($val["address4"])) $table[$key]["address4"] = $val["address4"];
- if(isset($val["address6"])) $table[$key]["address6"] = $val["address6"];
- if(isset($val["description"])) $table[$key]["description"] = $val["description"];
- if(isset($val["zone"])) $table[$key]["zone"] = $val["zone"];
- }
-
-
- echo "<h2>Interfaces</h2><table border=\"1\"><th>Device</th><th>Zone</th><th>Type</th><th>MAC Address</th><th>Address</th><th>MTU</th><th>Speed/Duplex</th><th>Description</th><th>Control</th></tr>";
- foreach($table as $key =>$val) {
- if($val["realname"] == $val["name"]) $name = $val["name"];
- else $name = $val["name"]." (".$val["realname"].")";
-
- // zone
- if(isset($val["zone"])) {
- if($val["zone"] == null) $zone = "-";
- else $zone = $val["zone"];
- } else $zone = "-";
-
- // mtu
- if(isset($val["mtu"])) {
- $mtu = $val["mtu"];
- } else $mtu = "-";
-
- // driver type
- if(isset($val["type"])) {
- $type = $val["type"];
- } else $type = "-";
-
- // hardware address
- if(isset($val["hwaddress"])) {
- $mac = $val["hwaddress"];
- } else $mac = "-";
-
- // speed and duplex
- if(isset($val["duplex"])) {
- if($val["duplex"] == null) $dup = "default";
- else $dup = $val["duplex"];
- } //else $dup = "default"; // TODO: needs to go away in fav of hardware setting
-
- if(isset($val["speed"])) {
- if($val["speed"] == null) $spd = "default";
- else $spd = $val["speed"];
- } //else $spd = "default"; // TODO: needs to go away inf av of hardware setting
-
- $spanddu = "$spd/$dup";
-
- // network address
- if(isset($val["address4"]) && isset($val["address6"])) {
- $address = $val["address4"]."<br>".$val["address6"];
- } else if(isset($val["address4"])) {
- $address = $val["address4"];
- } else if(isset($val["address6"])) {
- $address = $val["address6"];
- } else {
- $address = "-";
- }
-
- if(isset($val["description"])) $desc = $val["description"];
- else $desc = "-";
-
- echo "<tr><th>$name</th><td>$zone</td><td>$type</td><td>$mac</td><td>$address</td><td>$mtu</td><td>$spanddu</td><td>$desc</td><td><a href=\"$BASE_URL/interfaces/edit/".$val["realname"]."\">Edit</a></td></tr>";
- }
- echo "</table>";
-
- // to test
- echo "config: <pre>";
- print_r($config);
- echo "</pre>";
-}
-
function CBFWObjectsPage($urls)
{
$comms = new Comms();
--- /dev/null
+<?php
+
+
+function CBFWInterfacesPage($urls)
+{
+ if(isset($urls[1])) {
+ switch($urls[1]) {
+ case "edit":
+ CBFWpageBuilder(null, "CBFWInterfacesPageEdit", null, null, $urls[2]);
+ break;
+ case "change":
+ CBFWpageBuilder(null, "CBFWInterfacesChange", null, null, $urls[2]);
+ break;
+ default:
+ CBFWpageBuilder(null, "CBFWInterfacesPageDisplay");
+ }
+ } else {
+ error_log("main interface page");
+ CBFWpageBuilder(null, "CBFWInterfacesPageDisplay");
+ }
+}
+
+function CBFWInterfacesChange($interface)
+{
+ global $BASE_URL, $MENU_ITEMS;
+ $comms = new Comms();
+
+ $config = getWebUserConfig();
+ $boot_config = $comms->getConfig(1);
+
+ // set all to null
+ $hwaddr = null;
+ $zone = null;
+ $ip4 = null;
+ $ip6 = null;
+ $desc = null;
+ $speed = null;
+ $duplex = null;
+
+ if(isset($config["interface"]["dev"]["$interface"]["name"])) $name = $config["interface"]["dev"]["$interface"]["name"];
+ else $name = null;
+
+
+ $extra2 = "";
+ if(file_exists("/sys/class/net/$interface/address")) {
+ $extra2 = trim(file_get_contents("/sys/class/net/$interface/address"));
+ }
+
+ $extra = "";
+ if(isset($boot_config["hardware"]["netdev"]["$interface"]["hwaddress"])) {
+ $hwaddr = $boot_config["hardware"]["netdev"]["$interface"]["hwaddress"];
+ $extra = " <i>Original address: $hwaddr</i>";
+ if($hwaddr != $extra2 && $extra2 != "") {
+ $extra .= " <i>Current Address: $hwaddr</i>";
+ }
+ }
+
+ if(isset($config["interface"]["dev"]["$interface"]["hwaddress"])) $hwaddr = $config["interface"]["dev"]["$interface"]["hwaddress"];
+ if(isset($config["interface"]["dev"]["$interface"]["zone"])) $zone = $config["interface"]["dev"]["$interface"]["zone"];
+ if(isset($config["interface"]["dev"]["$interface"]["address4"])) $ip4 = $config["interface"]["dev"]["$interface"]["address4"];
+ if(isset($config["interface"]["dev"]["$interface"]["address6"])) $ip6 = $config["interface"]["dev"]["$interface"]["address6"];
+ if(isset($config["interface"]["dev"]["$interface"]["description"])) $desc = $config["interface"]["dev"]["$interface"]["description"];
+ if(isset($config["interface"]["dev"]["$interface"]["speed"])) $speed = $config["interface"]["dev"]["$interface"]["speed"];
+ if(isset($config["interface"]["dev"]["$interface"]["duplex"])) $duplex = $config["interface"]["dev"]["$interface"]["duplex"];
+
+ $newzone = $_REQUEST["zone"];
+ $newhwaddr = $_REQUEST["hwaddr"];
+ $newaddr4 = $_REQUEST["ipv4addr"];
+ $newaddr6 = $_REQUEST["ipv6addr"];
+ $newname = $_REQUEST["name"];
+ $newspeed = $_REQUEST["speed"];
+ $newduplex = $_REQUEST["duplex"];
+ $newdesc = $_REQUEST["description"];
+
+ // first, check the zone
+ error_log("comparing zone, $zone to $newzone for $interface");
+ if($zone == null && $newzone != "-") {
+ // we changed from no zone to some zone
+ error_log("modify interface zone to $newzone for $interface");
+ addWebUserChange("hold modify interface $interface zone $newzone");
+ } else if($zone != null && $newzone != "-" && $zone != $newzone) {
+ error_log("modify interface zone from $zone to $newzone for $interface");
+ addWebUserChange("hold modify interface $interface zone $newzone");
+ } else if($newzone == "-" && $zone != null) {
+ error_log("remove interface zone from $zone for $interface");
+ addWebUserChange("hold delete interface $interface zone $zone");
+ }
+
+ // next, check the description
+ if($newdesc != "" && $desc == null) {
+ addWebUserChange("hold modify interface $interface # $newdesc");
+ } else if($desc != null && $newdesc != "" && $desc != $newdesc) {
+ addWebUserChange("hold modify interface $interface # $newdesc");
+ } else if($desc != null && $newdesc == "") {
+ addWebUserChange("hold modify interface $interface #");
+ }
+
+ header("Location: $BASE_URL/interfaces");
+}
+
+function CBFWInterfacesPageEdit($urls)
+{
+ global $BASE_URL, $MENU_ITEMS;
+ $interface = $urls;
+
+ $comms = new Comms();
+
+ $config = getWebUserConfig();
+ $boot_config = $comms->getConfig(1);
+
+ $hwaddr = null;
+ $zone = null;
+ $ip4 = null;
+ $ip6 = null;
+ $speed = null;
+ $duplex = null;
+ $desc = null;
+
+ if(isset($config["interface"]["dev"]["$interface"]["name"])) $name = $config["interface"]["dev"]["$interface"]["name"];
+ else $name = "";
+
+ $extra2 = "";
+ if(file_exists("/sys/class/net/$interface/address")) {
+ $extra2 = trim(file_get_contents("/sys/class/net/$interface/address"));
+ }
+
+ $extra = "";
+ if(isset($boot_config["hardware"]["netdev"]["$interface"]["hwaddress"])) {
+ $hwaddr = $boot_config["hardware"]["netdev"]["$interface"]["hwaddress"];
+ $extra = " <i>Original address: $hwaddr</i>";
+ if($hwaddr != $extra2 && $extra2 != "") {
+ $extra .= " <i>Current Address: $hwaddr</i>";
+ }
+ }
+
+ if(isset($config["interface"]["dev"]["$interface"]["hwaddress"])) $hwaddr = $config["interface"]["dev"]["$interface"]["hwaddress"];
+ if(isset($config["interface"]["dev"]["$interface"]["zone"])) $zone = $config["interface"]["dev"]["$interface"]["zone"];
+ if(isset($config["interface"]["dev"]["$interface"]["address4"])) $ip4 = $config["interface"]["dev"]["$interface"]["address4"];
+ if(isset($config["interface"]["dev"]["$interface"]["address6"])) $ip6 = $config["interface"]["dev"]["$interface"]["address6"];
+ if(isset($config["interface"]["dev"]["$interface"]["description"])) $desc = $config["interface"]["dev"]["$interface"]["description"];
+ if(isset($boot_config["hardware"]["netdev"]["$interface"]["speed"])) $speed = $boot_config["hardware"]["netdev"]["$interface"]["speed"];
+ if(isset($boot_config["hardware"]["netdev"]["$interface"]["duplex"])) $duplex = $boot_config["hardware"]["netdev"]["$interface"]["duplex"];
+ if(isset($config["interface"]["dev"]["$interface"]["speed"])) $speed = $config["interface"]["dev"]["$interface"]["speed"];
+ if(isset($config["interface"]["dev"]["$interface"]["duplex"])) $duplex = $config["interface"]["dev"]["$interface"]["duplex"];
+
+ echo "<h3>Edit Interface $interface</h3><br>";
+ echo "<form method=\"post\" action=\"$BASE_URL/interfaces/change/$interface\">";
+ echo "<table>";
+ echo "<tr><td>Name</td><td><input type=\"text\" name=\"name\" value=\"$name\"></td></tr>";
+ echo "<tr><td>Description</td><td><input type=\"text\" name=\"description\" value=\"$desc\"></td></tr>";
+ echo "<tr><td>HW Address</td><td><input type=\"text\" name=\"hwaddr\" value=\"$hwaddr\">$extra</td></tr>";
+ echo "<tr><td>Zone</td><td>";
+ echo "<select name=\"zone\"><option value=\"-\">None</option>";
+ foreach($config["zone"] as $key=>$val) {
+ $sel = "";
+ if($zone!=null) if($zone == $key) $sel = " selected";
+ echo "<option value=\"$key\"$sel>$key</option>";
+ }
+ echo "</select>";
+ echo "</td></tr>";
+ echo "<tr><td>IPv4 Address</td><td><input type=\"text\" name=\"ipv4addr\" value=\"$ip4\"></td></tr>";
+ echo "<tr><td>IPv6 Address</td><td><input type=\"text\" name=\"ipv6addr\" value=\"$ip6\"></td></tr>";
+ echo "<tr><td>Speed</td><td><select name=\"speed\"><option value=\"auto\">Auto</option><option value=\"10\">10</option>";
+ echo "<option value=\"100\">100</option><option value=\"1000\">1000</option><option value=\"10000\">10000</option></select></td></tr>";
+ echo "<tr><td>Duplex</td><td><select name=\"duplex\"><option value=\"auto\">Auto</option><option value=\"full\">Full</option><option value=\"half\">Half</option></select></td></tr>";
+ echo "</table>";
+ echo "<input type=\"submit\" name=\"Change\" value=\"Change\"><br>";
+ //echo "<a href=\"$BASE_URL/interfaces/\">Back</a>";
+ echo "</form>";
+}
+
+function CBFWInterfacesPageDisplay()
+{
+ global $BASE_URL, $MENU_ITEMS;
+ $comms = new Comms();
+
+ $config = getWebUserConfig();
+ $boot_config = $comms->getConfig(1);
+
+ // at the top, we put in the creation bits
+ echo "<h2>Create Interface</h2>";
+ echo "<li><a href=\"$BASE_URL/interfaces/create/bond\">Link Aggregation Group (bonded/teamed interfaces)</a><br>";
+ echo "<li><a href=\"$BASE_URL/interfaces/create/vlan\">VLAN Tagged Sub Interfaces</a><br>";
+ echo "<li><a href=\"$BASE_URL/interfaces/create/bridge\">Bridged Interfaces</a><br>";
+ echo "<hr>";
+
+ // now build an interface table
+ $table = array();
+ foreach($boot_config["hardware"]["netdev"] as $key=>$val) {
+ $ename = $key;
+ $table[$key]["realname"] = $val["name"];
+ $table[$key]["name"] = $val["name"];
+
+
+ // driver
+ if(isset($val["driver"])) $table[$key]["type"] = $val["driver"];
+ else $table[$key]["type"] = "Unknown";
+
+ // hw address
+ if(isset($val["hwaddress"])) $table[$key]["hwaddress"] = $val["hwaddress"];
+
+ // current mtu
+ if(isset($val["mtu"])) $table[$key]["mtu"] = $val["mtu"];
+
+ // speed
+ if(isset($val["speed"])) $table[$key]["speed"] = $val["speed"];
+ else $table[$key]["speed"] = "default";
+
+ // duplex
+ if(isset($val["duplex"])) $table[$key]["duplex"] = $val["duplex"];
+ else $table[$key]["duplex"] = "default";
+ }
+
+ foreach($config["interface"]["dev"] as $key => $val) {
+ // TODO construction zone
+ error_log("doing $key");
+ if(isset($val["name"])) $table[$key]["name"] = $val["name"];
+ if(isset($val["address4"])) $table[$key]["address4"] = $val["address4"];
+ if(isset($val["address6"])) $table[$key]["address6"] = $val["address6"];
+ if(isset($val["description"])) $table[$key]["description"] = $val["description"];
+ if(isset($val["zone"])) $table[$key]["zone"] = $val["zone"];
+ }
+
+
+ echo "<h2>Interfaces</h2><table border=\"1\"><th>Device</th><th>Zone</th><th>Type</th><th>MAC Address</th><th>Address</th><th>MTU</th><th>Speed/Duplex</th><th>Description</th><th>Control</th></tr>";
+ foreach($table as $key =>$val) {
+ if($val["realname"] == $val["name"]) $name = $val["name"];
+ else $name = $val["name"]." (".$val["realname"].")";
+
+ // zone
+ if(isset($val["zone"])) {
+ if($val["zone"] == null) $zone = "-";
+ else $zone = $val["zone"];
+ } else $zone = "-";
+
+ // mtu
+ if(isset($val["mtu"])) {
+ $mtu = $val["mtu"];
+ } else $mtu = "-";
+
+ // driver type
+ if(isset($val["type"])) {
+ $type = $val["type"];
+ } else $type = "-";
+
+ // hardware address
+ if(isset($val["hwaddress"])) {
+ $mac = $val["hwaddress"];
+ } else $mac = "-";
+
+ // speed and duplex
+ if(isset($val["duplex"])) {
+ if($val["duplex"] == null) $dup = "default";
+ else $dup = $val["duplex"];
+ } //else $dup = "default"; // TODO: needs to go away in fav of hardware setting
+
+ if(isset($val["speed"])) {
+ if($val["speed"] == null) $spd = "default";
+ else $spd = $val["speed"];
+ } //else $spd = "default"; // TODO: needs to go away inf av of hardware setting
+
+ $spanddu = "$spd/$dup";
+
+ // network address
+ if(isset($val["address4"]) && isset($val["address6"])) {
+ $address = $val["address4"]."<br>".$val["address6"];
+ } else if(isset($val["address4"])) {
+ $address = $val["address4"];
+ } else if(isset($val["address6"])) {
+ $address = $val["address6"];
+ } else {
+ $address = "-";
+ }
+
+ if(isset($val["description"])) $desc = $val["description"];
+ else $desc = "-";
+
+ echo "<tr><th>$name</th><td>$zone</td><td>$type</td><td>$mac</td><td>$address</td><td>$mtu</td><td>$spanddu</td><td>$desc</td><td><a href=\"$BASE_URL/interfaces/edit/".$val["realname"]."\">Edit</a></td></tr>";
+ }
+ echo "</table>";
+
+ // to test
+ echo "config: <pre>";
+ print_r($config);
+ echo "</pre>";
+}
+
+?>
\ No newline at end of file