. * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ ##|+PRIV ##|*IDENT=page-services-wakeonlan ##|*NAME=Services: Wake-on-LAN ##|*DESCR=Allow access to the 'Services: Wake-on-LAN' page. ##|*MATCH=services_wol.php* ##|-PRIV require_once("guiconfig.inc"); if (!is_array($config['wol']['wolentry'])) { $config['wol']['wolentry'] = array(); } $a_wol = &$config['wol']['wolentry']; if ($_REQUEST['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).'), $mac, $description) . "
"; $class = 'success'; } else { $savemsg .= sprintf(gettext('Please check the %1$ssystem log%2$s, the wol command for %3$s (%4$s) did not complete successfully.'), '', '', $description, $mac) . "
"; $class = 'warning'; } } } if ($_POST['Submit'] || $_POST['mac']) { unset($input_errors); if ($_POST['mac']) { /* normalize MAC addresses - lowercase and convert Windows-ized hyphenated MACs to colon delimited */ $mac = strtolower(str_replace("-", ":", $_POST['mac'])); $if = $_POST['if']; } /* 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); $class = 'success'; } else { $savemsg .= sprintf(gettext('Please check the %1$ssystem log%2$s, the wol command for %3$s did not complete successfully.'), '', '', $mac) . "
"; $class = 'warning'; } } } } if ($_POST['act'] == "del") { if ($a_wol[$_POST['id']]) { unset($a_wol[$_POST['id']]); write_config(); header("Location: services_wol.php"); exit; } } $pgtitle = array(gettext("Services"), gettext("Wake-on-LAN")); include("head.inc"); ?>
' . gettext('The NIC in the computer that is to be woken up must support Wake-on-LAN and must be properly configured (WOL cable, BIOS settings).'), 'info', false); ?>
addInput(new Form_Select( 'interface', '*Interface', (link_interface_to_bridge($if) ? null : $if), get_configured_interface_with_descr() ))->setHelp('Choose which interface the host to be woken up is connected to.'); $section->addInput(new Form_Input( 'mac', '*MAC address', 'text', $mac ))->setHelp('Enter a MAC address in the following format: xx:xx:xx:xx:xx:xx'); $form->add($section); $form->addGlobal(new Form_Button( 'Submit', 'Send', null, 'fa-power-off' ))->addClass('btn-primary'); print $form; ?>

$wolent): ?>