diff options
author | jim-p <jimp@pfsense.org> | 2011-08-10 16:32:07 -0400 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2011-08-10 16:32:07 -0400 |
commit | a2b3c8ca6bdbaadf032513d354c3c2658e49fa28 (patch) | |
tree | f5ece99ef1da4ade233a2885ef170cc19fc4d70b /config/gwled/gwled.inc | |
parent | e59953342fc399c119766363a3815f7335b07951 (diff) | |
download | pfsense-packages-a2b3c8ca6bdbaadf032513d354c3c2658e49fa28.tar.gz pfsense-packages-a2b3c8ca6bdbaadf032513d354c3c2658e49fa28.tar.bz2 pfsense-packages-a2b3c8ca6bdbaadf032513d354c3c2658e49fa28.zip |
Add gwled package that lets you use LED2/3 to show a gateway's status.
Diffstat (limited to 'config/gwled/gwled.inc')
-rw-r--r-- | config/gwled/gwled.inc | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/config/gwled/gwled.inc b/config/gwled/gwled.inc new file mode 100644 index 00000000..35038034 --- /dev/null +++ b/config/gwled/gwled.inc @@ -0,0 +1,70 @@ +<?php +require_once("functions.inc"); + +function gwled_running () { + return ((int)exec('pgrep -f gwled | wc -l') > 0); +} + +function sync_package_gwled() { + global $config; + $gwled_config = $config['installedpackages']['gwled']['config'][0]; + /* kill all instances of gwled */ + if(gwled_running()) { + gwled_stop(); + } + gwled_start(); +} + +function gwled_start() { + global $config; + $gwled_config = $config['installedpackages']['gwled']['config'][0]; + if (!($gwled_config['enable'])) + return; + + if (($gwled_config['enable_led2']) && ($gwled_config['gw_led2']) + || ($gwled_config['enable_led3']) && ($gwled_config['gw_led3'])) + mwexec("/usr/local/bin/minicron 30 /var/run/gwled.pid /usr/local/bin/gwled.php"); +} + +function gwled_stop() { + exec("/bin/pkill -9 -f gwled"); +} + +function validate_form_gwled($post, $input_errors) { + /* Make sure both aren't using the same interface */ + if (($post['gw_led2']) && ($post['gw_led3']) && + (($post['enable_led2']) && ($post['enable_led3'])) && + ($post['gw_led2'] == $post['gw_led3'])) + $input_errors[] = 'You cannot set two LEDs for a single gateway. Please choose seperate interfaces.'; +} + +function gwled_get_gateways() { + $gateways = return_gateways_array(); + + foreach ($gateways as $gateway) { + $tmp["name"] = "{$gateway['name']} (Monitor: {$gateway['monitor']})"; + $tmp["value"] = $gateway['name']; + $gws[] = $tmp; + } + return $gws; +} + +function gwled_set_status($gateway, $led) { + $a_gateways = return_gateways_array(); + $gateways_status = array(); + $gateways_status = return_gateways_status(true); + if ($gateways_status[$gateway]) { + $status = $gateways_status[$gateway]['status']; + if (stristr($status, "down")) + led_blink($led, "veryfast"); + elseif (stristr($status, "loss")) + led_blink($led, "fast"); + elseif (stristr($status, "delay")) + led_blink($led, "medium"); + elseif ($status == "none") + led_on($led); + } else + led_on($led); +} + +?> |