From: <abe...@us...> - 2014-11-07 00:47:13
|
Revision: 6802 http://sourceforge.net/p/astlinux/code/6802 Author: abelbeck Date: 2014-11-07 00:47:08 +0000 (Fri, 07 Nov 2014) Log Message: ----------- web interface, add support for 'External Failover Interface' Modified Paths: -------------- branches/1.0/package/webinterface/altweb/admin/network.php branches/1.0/package/webinterface/altweb/admin/prefs.php branches/1.0/package/webinterface/altweb/common/functions.php branches/1.0/package/webinterface/altweb/common/status.inc Added Paths: ----------- branches/1.0/package/webinterface/altweb/admin/failover.php Added: branches/1.0/package/webinterface/altweb/admin/failover.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/failover.php (rev 0) +++ branches/1.0/package/webinterface/altweb/admin/failover.php 2014-11-07 00:47:08 UTC (rev 6802) @@ -0,0 +1,462 @@ +<?php + +// Copyright (C) 2014 Lonnie Abelbeck +// This is free software, licensed under the GNU General Public License +// version 3 as published by the Free Software Foundation; you can +// redistribute it and/or modify it under the terms of the GNU +// General Public License; and comes with ABSOLUTELY NO WARRANTY. + +// failover.php for AstLinux +// 11-06-2014 +// +// System location of rc.conf file +$CONFFILE = '/etc/rc.conf'; +// System location of /mnt/kd/rc.conf.d directory +$FAILOVERCONFDIR = '/mnt/kd/rc.conf.d'; +// System location of gui.failover.conf file +$FAILOVERCONFFILE = '/mnt/kd/rc.conf.d/gui.failover.conf'; + +$myself = $_SERVER['PHP_SELF']; + +require_once '../common/functions.php'; + +$verbosity_menu = array ( + '3' => 'error', + '6' => 'info', + '9' => 'debug' +); + +$test_interval_menu = array ( + '5' => '5 secs', + '10' => '10 secs', + '15' => '15 secs', + '20' => '20 secs', + '30' => '30 secs', + '40' => '40 secs', + '60' => '60 secs', + '90' => '90 secs', + '120' => '120 secs' +); + +$max_latency_menu = array ( + '500' => '0.5 sec', + '1000' => '1 sec', + '2000' => '2 secs', + '3000' => '3 secs', + '4000' => '4 secs', + '5000' => '5 secs' +); + +$threshold_menu = array ( + '2' => '2 failed', + '3' => '3 failed', + '4' => '4 failed', + '5' => '5 failed', + '6' => '6 failed', + '7' => '7 failed', + '8' => '8 failed' +); + +$primary_delay_menu = array ( + '10' => '10 seconds', + '20' => '20 seconds', + '30' => '30 seconds', + '60' => '1 minute', + '120' => '2 minutes', + '300' => '5 minutes' +); + +$secondary_delay_menu = array ( + '30' => '30 seconds', + '60' => '1 minute', + '120' => '2 minutes', + '300' => '5 minutes', + '600' => '10 minutes', + '1200' => '20 minutes', + '1800' => '30 minutes', + '3600' => '60 minutes' +); + +// Function: saveFAILOVERsettings +// +function saveFAILOVERsettings($conf_dir, $conf_file) { + $result = 11; + + if (! is_dir($conf_dir)) { + return(3); + } + if (($fp = @fopen($conf_file,"wb")) === FALSE) { + return(3); + } + fwrite($fp, "### gui.failover.conf - start ###\n###\n"); + + $value = 'WAN_FAILOVER_ENABLE="'.$_POST['enable'].'"'; + fwrite($fp, "### WAN Failover Enable\n".$value."\n"); + + $value = 'WAN_FAILOVER_VERBOSITY="'.$_POST['verbosity'].'"'; + fwrite($fp, "### Log Level\n".$value."\n"); + + $value = 'WAN_FAILOVER_TARGETS="'.tuq($_POST['targets']).'"'; + fwrite($fp, "### Test Targets\n".$value."\n"); + + fwrite($fp, "### Timing and intervals\n"); + $value = 'WAN_FAILOVER_TEST_INTERVAL="'.$_POST['test_interval'].'"'; + fwrite($fp, $value."\n"); + $value = 'WAN_FAILOVER_THRESHOLD="'.$_POST['threshold'].'"'; + fwrite($fp, $value."\n"); + $value = 'WAN_FAILOVER_MAX_LATENCY="'.$_POST['max_latency'].'"'; + fwrite($fp, $value."\n"); + $value = 'WAN_FAILOVER_PRIMARY_DELAY="'.$_POST['primary_delay'].'"'; + fwrite($fp, $value."\n"); + $value = 'WAN_FAILOVER_SECONDARY_DELAY="'.$_POST['secondary_delay'].'"'; + fwrite($fp, $value."\n"); + + fwrite($fp, "### Email Notify\n"); + $value = 'WAN_FAILOVER_NOTIFY="'.tuq($_POST['notify']).'"'; + fwrite($fp, $value."\n"); + $value = 'WAN_FAILOVER_NOTIFY_FROM="'.tuq($_POST['notify_from']).'"'; + fwrite($fp, $value."\n"); + + fwrite($fp, "### Secondary Gateway\n"); + $value = 'WAN_FAILOVER_SECONDARY_GW="'.tuq($_POST['secondary_gw_ipv4']).'"'; + fwrite($fp, $value."\n"); + $value = 'WAN_FAILOVER_SECONDARY_GWIPV6="'.tuq($_POST['secondary_gw_ipv6']).'"'; + fwrite($fp, $value."\n"); + + if ($_POST['ip_type'] === 'dhcp') { + $value = 'EXT2IP=""'; + } else { + $value = 'EXT2IP="'.tuq($_POST['static_ip']).'"'; + } + fwrite($fp, "### Static IPv4\n".$value."\n"); + + if ($_POST['ip_type'] === 'dhcp') { + $value = 'EXT2NM=""'; + } else { + $value = 'EXT2NM="'.tuq($_POST['mask_ip']).'"'; + } + fwrite($fp, "### Static IPv4 NetMask\n".$value."\n"); + + if ($_POST['ip_type'] === 'dhcp') { + $value = 'EXT2GW=""'; + } else { + $value = 'EXT2GW="'.tuq($_POST['gateway_ip']).'"'; + } + fwrite($fp, "### Static IPv4 Gateway\n".$value."\n"); + + $value = tuq($_POST['static_ipv6']); + if ($value !== '' && strpos($value, '/') === FALSE) { + $value="$value/64"; + } + $value = 'EXT2IPV6="'.$value.'"'; + fwrite($fp, "### Static IPv6\n".$value."\n"); + + $value = tuq($_POST['gateway_ipv6']); + if (($pos = strpos($value, '/')) !== FALSE) { + $value=substr($value, 0, $pos); + } + $value = 'EXT2GWIPV6="'.$value.'"'; + fwrite($fp, "### Static IPv6 Gateway\n".$value."\n"); + + $value = 'EXT2ROUTES="'.tuq($_POST['routes_ipv4']).'"'; + fwrite($fp, "### IPv4 Destination Routes\n".$value."\n"); + + $value = 'EXT2ROUTESIPV6="'.tuq($_POST['routes_ipv6']).'"'; + fwrite($fp, "### IPv6 Destination Routes\n".$value."\n"); + + fwrite($fp, "### gui.failover.conf - end ###\n"); + fclose($fp); + + return($result); +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $result = 1; + if (! $global_admin) { + $result = 999; + } elseif (isset($_POST['submit_save'])) { + $result = saveFAILOVERsettings($FAILOVERCONFDIR, $FAILOVERCONFFILE); + } elseif (isset($_POST['submit_restart'])) { + $result = 99; + if (isset($_POST['confirm_restart'])) { + $result = restartPROCESS('failover', 10, $result, 'init'); + } else { + $result = 2; + } + } + header('Location: '.$myself.'?result='.$result); + exit; +} else { // Start of HTTP GET +$ACCESS_RIGHTS = 'admin'; +require_once '../common/header.php'; + + if (is_file($FAILOVERCONFFILE)) { + $db = parseRCconf($FAILOVERCONFFILE); + $cur_db = parseRCconf($CONFFILE); + } else { + $db = parseRCconf($CONFFILE); + $cur_db = NULL; + } + + putHtml("<center>"); + if (isset($_GET['result'])) { + $result = $_GET['result']; + if ($result == 2) { + putHtml('<p style="color: red;">No Action, check "Confirm" for this action.</p>'); + } elseif ($result == 3) { + putHtml('<p style="color: red;">Error creating file.</p>'); + } elseif ($result == 10) { + putHtml('<p style="color: green;">WAN Failover'.statusPROCESS('failover').'.</p>'); + } elseif ($result == 11) { + putHtml('<p style="color: green;">Settings saved, click "Restart Failover" to apply any changed settings.</p>'); + } elseif ($result == 99) { + putHtml('<p style="color: red;">Action Failed.</p>'); + } elseif ($result == 999) { + putHtml('<p style="color: red;">Permission denied for user "'.$global_user.'".</p>'); + } else { + putHtml('<p style="color: orange;">No Action.</p>'); + } + } else { + putHtml('<p> </p>'); + } + putHtml("</center>"); +?> + <center> + <table class="layout"><tr><td><center> + <form method="post" action="<?php echo $myself;?>"> + <table width="100%" class="stdtable"> + <tr><td style="text-align: center;" colspan="2"> + <h2>WAN Failover Configuration:</h2> + </td></tr><tr><td width="240" style="text-align: center;"> + <input type="submit" class="formbtn" value="Save Settings" name="submit_save" /> + </td><td class="dialogText" style="text-align: center;"> + <input type="submit" class="formbtn" value="Restart Failover" name="submit_restart" /> + – + <input type="checkbox" value="restart" name="confirm_restart" /> Confirm + </td></tr></table> + <table class="stdtable"> + <tr class="dtrow0"><td width="60"> </td><td width="100"> </td><td width="100"> </td><td> </td><td width="100"> </td><td width="80"> </td></tr> +<?php + putHtml('<tr class="dtrow0"><td class="dialogText" style="text-align: left;" colspan="6">'); + putHtml('<strong>WAN Failover:</strong>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Failover:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + putHtml('<select name="enable">'); + $value = getVARdef($db, 'WAN_FAILOVER_ENABLE', $cur_db); + putHtml('<option value="no">disabled</option>'); + $sel = ($value === 'yes') ? ' selected="selected"' : ''; + putHtml('<option value="yes"'.$sel.'>enabled</option>'); + putHtml('</select>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Log Level:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + putHtml('<select name="verbosity">'); + if (($verbosity = getVARdef($db, 'WAN_FAILOVER_VERBOSITY', $cur_db)) === '') { + $verbosity = '6'; + } + foreach ($verbosity_menu as $key => $value) { + $sel = ($verbosity === (string)$key) ? ' selected="selected"' : ''; + putHtml('<option value="'.$key.'"'.$sel.'>'.$value.'</option>'); + } + putHtml('</select>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Target IPv4 Hosts:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + if (($value = getVARdef($db, 'WAN_FAILOVER_TARGETS', $cur_db)) === '') { + $value = '8.8.4.4 4.2.2.3'; + } + putHtml('<input type="text" size="48" maxlength="128" value="'.$value.'" name="targets" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Test Interval:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + putHtml('<select name="test_interval">'); + if (($test_interval = getVARdef($db, 'WAN_FAILOVER_TEST_INTERVAL', $cur_db)) === '') { + $test_interval = '20'; + } + foreach ($test_interval_menu as $key => $value) { + $sel = ($test_interval === (string)$key) ? ' selected="selected"' : ''; + putHtml('<option value="'.$key.'"'.$sel.'>'.$value.'</option>'); + } + putHtml('</select>'); + putHtml('between tests'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Threshold:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + putHtml('<select name="threshold">'); + if (($threshold = getVARdef($db, 'WAN_FAILOVER_THRESHOLD', $cur_db)) === '') { + $threshold = '3'; + } + foreach ($threshold_menu as $key => $value) { + $sel = ($threshold === (string)$key) ? ' selected="selected"' : ''; + putHtml('<option value="'.$key.'"'.$sel.'>'.$value.'</option>'); + } + putHtml('</select>'); + putHtml('tests for Failover'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Max Latency:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + putHtml('<select name="max_latency">'); + if (($max_latency = getVARdef($db, 'WAN_FAILOVER_MAX_LATENCY', $cur_db)) === '') { + $max_latency = '1000'; + } + foreach ($max_latency_menu as $key => $value) { + $sel = ($max_latency === (string)$key) ? ' selected="selected"' : ''; + putHtml('<option value="'.$key.'"'.$sel.'>'.$value.'</option>'); + } + putHtml('</select>'); + putHtml('per target host'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Primary Delay:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + putHtml('<select name="primary_delay">'); + if (($primary_delay = getVARdef($db, 'WAN_FAILOVER_PRIMARY_DELAY', $cur_db)) === '') { + $primary_delay = '60'; + } + foreach ($primary_delay_menu as $key => $value) { + $sel = ($primary_delay === (string)$key) ? ' selected="selected"' : ''; + putHtml('<option value="'.$key.'"'.$sel.'>'.$value.'</option>'); + } + putHtml('</select>'); + putHtml('following Failback'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Secondary Delay:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + putHtml('<select name="secondary_delay">'); + if (($secondary_delay = getVARdef($db, 'WAN_FAILOVER_SECONDARY_DELAY', $cur_db)) === '') { + $secondary_delay = '600'; + } + foreach ($secondary_delay_menu as $key => $value) { + $sel = ($secondary_delay === (string)$key) ? ' selected="selected"' : ''; + putHtml('<option value="'.$key.'"'.$sel.'>'.$value.'</option>'); + } + putHtml('</select>'); + putHtml('following Failover'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Notify Email Addresses<br />To:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'WAN_FAILOVER_NOTIFY', $cur_db); + putHtml('<input type="text" size="48" maxlength="256" value="'.$value.'" name="notify" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Notify Email Address<br />From:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'WAN_FAILOVER_NOTIFY_FROM', $cur_db); + putHtml('<input type="text" size="48" maxlength="128" value="'.$value.'" name="notify_from" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="color: orange; text-align: center;" colspan="6">'); + putHtml('Note: Leave the next two fields empty to use the<br />External Failover Interface (default).'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Secondary Gateway IPv4:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'WAN_FAILOVER_SECONDARY_GW', $cur_db); + putHtml('<input type="text" size="18" maxlength="15" value="'.$value.'" name="secondary_gw_ipv4" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Secondary Gateway IPv6:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'WAN_FAILOVER_SECONDARY_GWIPV6', $cur_db); + putHtml('<input type="text" size="38" maxlength="39" value="'.$value.'" name="secondary_gw_ipv6" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow0"><td class="dialogText" style="text-align: left;" colspan="6">'); + putHtml('<strong>External Failover Interface:</strong>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Connection Type:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + putHtml('<select name="ip_type">'); + putHtml('<option value="dhcp">DHCP</option>'); + $sel = (getVARdef($db, 'EXT2IP', $cur_db) !== '') ? ' selected="selected"' : ''; + putHtml('<option value="static"'.$sel.'>Static IP</option>'); + putHtml('</select>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Static IPv4:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'EXT2IP', $cur_db); + putHtml('<input type="text" size="18" maxlength="15" value="'.$value.'" name="static_ip" />'); + putHtml('<i>(IPv4 cleared for DHCP)</i>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('IPv4 NetMask:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'EXT2NM', $cur_db); + putHtml('<input type="text" size="18" maxlength="15" value="'.$value.'" name="mask_ip" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('IPv4 Gateway:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'EXT2GW', $cur_db); + putHtml('<input type="text" size="18" maxlength="15" value="'.$value.'" name="gateway_ip" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Static IPv6/nn:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'EXT2IPV6', $cur_db); + putHtml('<input type="text" size="38" maxlength="43" value="'.$value.'" name="static_ipv6" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('IPv6 Gateway:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'EXT2GWIPV6', $cur_db); + putHtml('<input type="text" size="38" maxlength="39" value="'.$value.'" name="gateway_ipv6" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow0"><td class="dialogText" style="text-align: left;" colspan="6">'); + putHtml('<strong>External Failover Destination Routes:</strong>'); + putHtml('<i>(1.2.3.4 9.9.9.0/30)</i>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('IPv4 Routes:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'EXT2ROUTES', $cur_db); + putHtml('<input type="text" size="48" maxlength="256" value="'.$value.'" name="routes_ipv4" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('IPv6 Routes:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'EXT2ROUTESIPV6', $cur_db); + putHtml('<input type="text" size="48" maxlength="256" value="'.$value.'" name="routes_ipv6" />'); + putHtml('</td></tr>'); + + putHtml('</table>'); + putHtml('</form>'); + + putHtml('</center></td></tr></table>'); + putHtml('</center>'); +} // End of HTTP GET +require_once '../common/footer.php'; + +?> Property changes on: branches/1.0/package/webinterface/altweb/admin/failover.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Modified: branches/1.0/package/webinterface/altweb/admin/network.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/network.php 2014-11-06 17:24:49 UTC (rev 6801) +++ branches/1.0/package/webinterface/altweb/admin/network.php 2014-11-07 00:47:08 UTC (rev 6802) @@ -124,6 +124,7 @@ global $FIREWALLCONFFILE; $eth[] = $_POST['ext_eth']; + $eth[] = $_POST['ext2_eth']; $eth[] = $_POST['int_eth']; $eth[] = $_POST['int2_eth']; $eth[] = $_POST['int3_eth']; @@ -252,6 +253,9 @@ $value = isset($_POST['vlan_cos']) ? 'VLANCOS="yes"' : 'VLANCOS=""'; fwrite($fp, "### VLAN COS\n".$value."\n"); + $value = 'EXT2IF="'.$_POST['ext2_eth'].'"'; + fwrite($fp, "### External Failover Interface\n".$value."\n"); + $value = 'INTIF="'.$_POST['int_eth'].'"'; fwrite($fp, "### 1st LAN Interface\n".$value."\n"); @@ -826,6 +830,11 @@ $result = 999; } elseif (isset($_POST['submit_save'])) { $result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE); + } elseif (isset($_POST['submit_edit_failover'])) { + if (($result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE)) == 11) { + header('Location: /admin/failover.php'); + exit; + } } elseif (isset($_POST['submit_edit_firewall'])) { $result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE); header('Location: /admin/firewall.php'); @@ -1313,6 +1322,26 @@ putHtml('<tr class="dtrow0"><td colspan="6"> </td></tr>'); putHtml('<tr class="dtrow0"><td class="dialogText" style="text-align: left;" colspan="6">'); + putHtml('<strong>External Failover Interface:</strong>'); + putHtml('</td></tr>'); + putHtml('<tr class="dtrow1"><td style="text-align: left;" colspan="6">'); + putHtml('<strong>Failover Interface:</strong>'); + putHtml('<select name="ext2_eth">'); + putHtml('<option value="">none</option>'); + $varif = getVARdef($db, 'EXT2IF', $cur_db); + if (($n = count($eth)) > 0) { + for ($i = 0; $i < $n; $i++) { + $sel = ($varif === $eth[$i]) ? ' selected="selected"' : ''; + putHtml('<option value="'.$eth[$i].'"'.$sel.'>'.$eth[$i].'</option>'); + } + } + putHtml('</select>'); + putHtml('–'); + putHtml('<input type="submit" value="WAN Failover Configuration" name="submit_edit_failover" class="button" /></td></tr>'); + + putHtml('<tr class="dtrow0"><td colspan="6"> </td></tr>'); + + putHtml('<tr class="dtrow0"><td class="dialogText" style="text-align: left;" colspan="6">'); putHtml('<strong>Internal Interfaces:</strong>'); putHtml('</td></tr>'); putHtml('<tr class="dtrow1"><td style="text-align: left;" colspan="6">'); Modified: branches/1.0/package/webinterface/altweb/admin/prefs.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/prefs.php 2014-11-06 17:24:49 UTC (rev 6801) +++ branches/1.0/package/webinterface/altweb/admin/prefs.php 2014-11-07 00:47:08 UTC (rev 6802) @@ -50,6 +50,10 @@ $value = 'status_disk_usage = no'; fwrite($fp, $value."\n"); } + if (! isset($_POST['wan_failover'])) { + $value = 'status_show_wan_failover = no'; + fwrite($fp, $value."\n"); + } if (! isset($_POST['ntp_sessions'])) { $value = 'status_ntp_sessions = no'; fwrite($fp, $value."\n"); @@ -559,7 +563,12 @@ putHtml('<tr class="dtrow1"><td style="text-align: right;">'); $sel = (getPREFdef($global_prefs, 'status_disk_usage') !== 'no') ? ' checked="checked"' : ''; putHtml('<input type="checkbox" value="disk_usage" name="disk_usage"'.$sel.' /></td><td colspan="5">Show Disk Usage</td></tr>'); + putHtml('<tr class="dtrow1"><td style="text-align: right;">'); + $sel = (getPREFdef($global_prefs, 'status_show_wan_failover') !== 'no') ? ' checked="checked"' : ''; + putHtml('<input type="checkbox" value="wan_failover" name="wan_failover"'.$sel.' /></td><td colspan="5">Show WAN Failover Status</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;">'); $sel = (getPREFdef($global_prefs, 'status_ntp_sessions') !== 'no') ? ' checked="checked"' : ''; putHtml('<input type="checkbox" value="ntp_sessions" name="ntp_sessions"'.$sel.' /></td><td colspan="5">Show NTP Peer States</td></tr>'); putHtml('<tr class="dtrow1"><td style="text-align: right;">'); Modified: branches/1.0/package/webinterface/altweb/common/functions.php =================================================================== --- branches/1.0/package/webinterface/altweb/common/functions.php 2014-11-06 17:24:49 UTC (rev 6801) +++ branches/1.0/package/webinterface/altweb/common/functions.php 2014-11-07 00:47:08 UTC (rev 6802) @@ -134,6 +134,12 @@ } else { $str = $stopped; } + } elseif ($process === 'failover') { + if (is_file($path.'wan-failover.pid')) { + $str = $running; + } else { + $str = $stopped; + } } if ($str === '') { if (is_file($path.$process.'.pid')) { Modified: branches/1.0/package/webinterface/altweb/common/status.inc =================================================================== --- branches/1.0/package/webinterface/altweb/common/status.inc 2014-11-06 17:24:49 UTC (rev 6801) +++ branches/1.0/package/webinterface/altweb/common/status.inc 2014-11-07 00:47:08 UTC (rev 6802) @@ -33,6 +33,8 @@ // 01-03-2014, Added NUT UPS Monitoring Status // 07-02-2014, Added "Show PPPoE Logs" button // 09-04-2014, Added Kamailio SIP Server Status +// 10-28-2014, Added S.M.A.R.T Monitoring Status +// 11-06-2014, Added Failover Status // // System location of OpenVPN Client logfile $OVPNCLOGFILE = '/var/log/openvpnclient-status.log'; @@ -665,6 +667,21 @@ putHtml("</pre>"); } +if (is_file('/var/run/wan-failover.pid') && is_file('/var/log/wan-failover-status.log')) { + if (getPREFdef($global_prefs, 'status_show_wan_failover') !== 'no') { + putHtml("<h2>WAN Failover Status:</h2>"); + putHtml("<pre>"); + + $output = array(); + @exec('cat /var/log/wan-failover-status.log', $output); + foreach ($output as $line) { + putText(rtrim($line)); + } + unset($output); + putHtml("</pre>"); + } +} + if ($daemon['ntpd'] > 0) { if (getPREFdef($global_prefs, 'status_ntp_sessions') !== 'no') { putHtml("<h2>NTP Peer States:</h2>"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |