diff options
-rwxr-xr-x | config/blinkled8/binaries/blinkled | bin | 0 -> 9323 bytes | |||
-rw-r--r-- | config/blinkled8/blinkled.inc | 49 | ||||
-rw-r--r-- | config/blinkled8/blinkled.xml | 68 | ||||
-rwxr-xr-x | pkg_config.8.xml | 4 |
4 files changed, 119 insertions, 2 deletions
diff --git a/config/blinkled8/binaries/blinkled b/config/blinkled8/binaries/blinkled Binary files differnew file mode 100755 index 00000000..fe7c0e4e --- /dev/null +++ b/config/blinkled8/binaries/blinkled diff --git a/config/blinkled8/blinkled.inc b/config/blinkled8/blinkled.inc new file mode 100644 index 00000000..d50cc022 --- /dev/null +++ b/config/blinkled8/blinkled.inc @@ -0,0 +1,49 @@ +<?php +require_once("functions.inc"); + +function blinkled_running () { + return ((int)exec('pgrep blinkled | wc -l') > 0); +} + +function sync_package_blinkled() { + global $config; + $blinkled_config = $config['installedpackages']['blinkled']['config'][0]; + /* kill all instances of blinkled */ + if(blinkled_running()) { + blinkled_stop(); + } + /* if blinkled not running start it */ + if(!blinkled_running()) { + blinkled_start(); + } +} + +function blinkled_launch($int, $led) { + mwexec("/usr/local/bin/blinkled -i " . escapeshellarg($int) . " -l /dev/led/led" . escapeshellarg($led)); +} + +function blinkled_start() { + global $config; + $blinkled_config = $config['installedpackages']['blinkled']['config'][0]; + if (!($blinkled_config['enable'])) + return; + + if (($blinkled_config['enable_led2']) && ($blinkled_config['iface_led2'])) + blinkled_launch(convert_friendly_interface_to_real_interface_name($blinkled_config['iface_led2']), 2); + if (($blinkled_config['enable_led3']) && ($blinkled_config['iface_led3'])) + blinkled_launch(convert_friendly_interface_to_real_interface_name($blinkled_config['iface_led3']), 3); +} + +function blinkled_stop() { + mwexec("/usr/bin/killall -9 blinkled"); +} + +function validate_form_blinkled($post, $input_errors) { + /* Make sure both aren't using the same interface */ + if (($post['iface_led2']) && ($post['iface_led3']) && + (($post['enable_led2']) && ($post['enable_led3'])) && + ($post['iface_led2'] == $post['iface_led3'])) + $input_errors[] = 'You cannot set two LEDs for a single interface. Please choose seperate interfaces.'; +} + +?> diff --git a/config/blinkled8/blinkled.xml b/config/blinkled8/blinkled.xml new file mode 100644 index 00000000..3766f030 --- /dev/null +++ b/config/blinkled8/blinkled.xml @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="utf-8" ?> +<packagegui> + <title>Interfaces: Assign LEDs</title> + <name>blinkled</name> + <version>20090710</version> + <savetext>Save</savetext> + <include_file>/usr/local/pkg/blinkled.inc</include_file> + <menu> + <name>Assign LEDs</name> + <tooltiptext>Assign LEDs to indicate network activity.</tooltiptext> + <section>Interfaces</section> + <url>/pkg_edit.php?xml=blinkled.xml</url> + </menu> + <additional_files_needed> + <item>http://www.pfsense.org/packages/config/blinkled8/blinkled.inc</item> + <prefix>/usr/local/pkg/</prefix> + <chmod>0755</chmod> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/local/bin/</prefix> + <chmod>0755</chmod> + <item>http://www.pfsense.com/packages/config/blinkled8/binaries/blinkled</item> + </additional_files_needed> + <service> + <name>blinkled</name> + <rcfile>blinkled.sh</rcfile> + <executable>blinkled</executable> + </service> + <fields> + <field> + <fielddescr>Enable blinkled</fielddescr> + <fieldname>enable</fieldname> + <type>checkbox</type> + <enablefields>enable_led2,enable_led3,iface_led2,iface_led3</enablefields> + <description>if this is enabled, it will use LED #2 and #3 to + indicate network activity. Be aware, however, that this will + possibly consume some system resources in the process.</description> + </field> + <field> + <fielddescr>Enable LED #2</fielddescr> + <fieldname>enable_led2</fieldname> + <type>checkbox</type> + </field> + <field> + <fielddescr>Interface For LED #2</fielddescr> + <fieldname>iface_led2</fieldname> + <type>interfaces_selection</type> + <description>Pick an interface to blink for activity on LED #2</description> + </field> + <field> + <fielddescr>Enable LED #3</fielddescr> + <fieldname>enable_led3</fieldname> + <type>checkbox</type> + </field> + <field> + <fielddescr>Interface For LED #3</fielddescr> + <fieldname>iface_led3</fieldname> + <type>interfaces_selection</type> + <description>Pick an interface to blink for activity on LED #3</description> + </field> + </fields> + <custom_php_validation_command> + validate_form_blinkled($_POST, &$input_errors); + </custom_php_validation_command> + <custom_php_resync_config_command> + sync_package_blinkled(); + </custom_php_resync_config_command> +</packagegui> diff --git a/pkg_config.8.xml b/pkg_config.8.xml index 9007c67b..cab5c8ef 100755 --- a/pkg_config.8.xml +++ b/pkg_config.8.xml @@ -733,11 +733,11 @@ <name>blinkled</name> <descr>Allows you to use LEDs for network activity on supported platforms (ALIX, WRAP, Soekris, etc)</descr> <category>System</category> - <version>0.1</version> + <version>0.2</version> <status>Beta</status> <maintainer>jimp@pfsense.org</maintainer> <required_version>1.2.3</required_version> - <config_file>http://www.pfsense.org/packages/config/blinkled/blinkled.xml</config_file> + <config_file>http://www.pfsense.org/packages/config/blinkled8/blinkled.xml</config_file> <configurationfile>blinkled.xml</configurationfile> <pkginfolink>http://doc.pfsense.org/index.php/BlinkLED_Package</pkginfolink> <website>http://doc.pfsense.org/index.php/BlinkLED_Package</website> |