. * 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-status-interfaces ##|*NAME=Status: Interfaces ##|*DESCR=Allow access to the 'Status: Interfaces' page. ##|*MATCH=status_interfaces.php* ##|-PRIV require_once("guiconfig.inc"); require_once("interfaces.inc"); require_once("pfsense-utils.inc"); require_once("util.inc"); if ($_POST['ifdescr'] && $_POST['submit']) { $interface = $_POST['ifdescr']; if ($_POST['status'] == "up") { if ($_POST['relinquish_lease']) { dhcp_relinquish_lease($_POST['if'], $_POST['ifdescr'], $_POST['ipv']); } interface_bring_down($interface); } else { interface_configure($interface); } header("Location: status_interfaces.php"); exit; } $formtemplate = '
' . '' . '' . '%s' . '' . '%s' . '
'; // Display a term/definition pair function showDef($show, $term, $def) { if ($show) { print('
' . $term . '
'); print('
' . htmlspecialchars($def) . '
'); } } // Display a term/definition pair with a button function showDefBtn($show, $term, $def, $ifdescr, $btnlbl, $chkbox_relinquish_lease) { global $formtemplate; if ($show) { print('
' . $term . '
'); print('
'); printf($formtemplate, $term, $ifdescr, $show, htmlspecialchars($def) . ' ', $btnlbl, $btnlbl, $chkbox_relinquish_lease); print('
'); } } // Relinquish the DHCP lease from the server. function dhcp_relinquish_lease($if, $ifdescr, $ipv) { $leases_db = '/var/db/dhclient.leases.' . $if; $conf_file = '/var/etc/dhclient_'.$ifdescr.'.conf'; $script_file = '/usr/local/sbin/pfSense-dhclient-script'; if (file_exists($leases_db) && file_exists($script_file)) { mwexec('/usr/local/sbin/dhclient -'.$ipv.' -d -r -lf '.$leases_db.' -cf '.$conf_file.' -sf '.$script_file); } } $pgtitle = array(gettext("Status"), gettext("Interfaces")); $shortcut_section = "interfaces"; include("head.inc"); $ifdescrs = get_configured_interface_with_descr(true); foreach ($ifdescrs as $ifdescr => $ifname): $ifinfo = get_interface_info($ifdescr); $mac_man = load_mac_manufacturer_table(); $chkbox_relinquish_lease = '   ' . ' ' . gettext("Relinquish Lease") . ''; $chkbox_relinquish_lease_v4 = $chkbox_relinquish_lease . ''; $chkbox_relinquish_lease_v6 = $chkbox_relinquish_lease . ''; ?>

(, )

', ''), 'warning', false); include("foot.inc"); ?>