aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfig/blinkled8/binaries/blinkledbin0 -> 9323 bytes
-rw-r--r--config/blinkled8/blinkled.inc49
-rw-r--r--config/blinkled8/blinkled.xml68
-rwxr-xr-xpkg_config.8.xml4
4 files changed, 119 insertions, 2 deletions
diff --git a/config/blinkled8/binaries/blinkled b/config/blinkled8/binaries/blinkled
new file mode 100755
index 00000000..fe7c0e4e
--- /dev/null
+++ b/config/blinkled8/binaries/blinkled
Binary files differ
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, &amp;$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>