From 46bc6e545a17e77202aaf01ec0cd8d5a46567525 Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Tue, 25 Aug 2015 08:08:24 -0300 Subject: Move main pfSense content to src/ --- src/usr/local/www/services_wol.php | 233 +++++++++++++++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 src/usr/local/www/services_wol.php (limited to 'src/usr/local/www/services_wol.php') diff --git a/src/usr/local/www/services_wol.php b/src/usr/local/www/services_wol.php new file mode 100644 index 0000000..e443ab0 --- /dev/null +++ b/src/usr/local/www/services_wol.php @@ -0,0 +1,233 @@ +. + Copyright (C) 2013-2015 Electric Sheep Fencing, LP + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ +/* + pfSense_BUILDER_BINARIES: /usr/local/bin/wol + pfSense_MODULE: wol +*/ + +##|+PRIV +##|*IDENT=page-services-wakeonlan +##|*NAME=Services: Wake on LAN page +##|*DESCR=Allow access to the 'Services: Wake on LAN' page. +##|*MATCH=services_wol.php* +##|-PRIV + +require("guiconfig.inc"); + +if (!is_array($config['wol']['wolentry'])) { + $config['wol']['wolentry'] = array(); +} +$a_wol = &$config['wol']['wolentry']; + +if ($_GET['wakeall'] <> "") { + $i = 0; + $savemsg = ""; + foreach ($a_wol as $wolent) { + $mac = $wolent['mac']; + $if = $wolent['interface']; + $description = $wolent['descr']; + $ipaddr = get_interface_ip($if); + if (!is_ipaddr($ipaddr)) { + continue; + } + $bcip = gen_subnet_max($ipaddr, get_interface_subnet($if)); + /* Execute wol command and check return code. */ + if (!mwexec("/usr/local/bin/wol -i {$bcip} {$mac}")) { + $savemsg .= sprintf(gettext('Sent magic packet to %1$s (%2$s)%3$s'), $mac, $description, ".
"); + } else { + $savemsg .= sprintf(gettext('Please check the %1$ssystem log%2$s, the wol command for %3$s (%4$s) did not complete successfully%5$s'), '', '', $description, $mac, ".
"); + } + } +} + +if ($_POST || $_GET['mac']) { + unset($input_errors); + + if ($_GET['mac']) { + /* normalize MAC addresses - lowercase and convert Windows-ized hyphenated MACs to colon delimited */ + $_GET['mac'] = strtolower(str_replace("-", ":", $_GET['mac'])); + $mac = $_GET['mac']; + $if = $_GET['if']; + } else { + /* normalize MAC addresses - lowercase and convert Windows-ized hyphenated MACs to colon delimited */ + $_POST['mac'] = strtolower(str_replace("-", ":", $_POST['mac'])); + $mac = $_POST['mac']; + $if = $_POST['interface']; + } + + /* input validation */ + if (!$mac || !is_macaddr($mac)) { + $input_errors[] = gettext("A valid MAC address must be specified."); + } + if (!$if) { + $input_errors[] = gettext("A valid interface must be specified."); + } + + if (!$input_errors) { + /* determine broadcast address */ + $ipaddr = get_interface_ip($if); + if (!is_ipaddr($ipaddr)) { + $input_errors[] = gettext("A valid ip could not be found!"); + } else { + $bcip = gen_subnet_max($ipaddr, get_interface_subnet($if)); + /* Execute wol command and check return code. */ + if (!mwexec("/usr/local/bin/wol -i {$bcip} " . escapeshellarg($mac))) { + $savemsg .= sprintf(gettext("Sent magic packet to %s."), $mac); + } else { + $savemsg .= sprintf(gettext('Please check the %1$ssystem log%2$s, the wol command for %3$s did not complete successfully%4$s'), '', '', $mac, ".
"); + } + } + } +} + +if ($_GET['act'] == "del") { + if ($a_wol[$_GET['id']]) { + unset($a_wol[$_GET['id']]); + write_config(); + header("Location: services_wol.php"); + exit; + } +} + +$pgtitle = array(gettext("Services"), gettext("Wake on LAN")); +include("head.inc"); + +?> + + + + + +
+ + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ +
  + " /> +
+  
+ wol all
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + +
add
+
+ + + + + + + + + + + +
edit')">delete
+
+ + + + + +
add
+
+ + + +
+
+
+ "". +
+
+ + + -- cgit v1.1