* Copyright (C) 2008 Shrew Soft Inc. * Copyright (C) 2003-2004 Manuel Kasper * 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. */ require_once("guiconfig.inc"); require_once("system.inc"); $a_tunable = &config_read_array('sysctl', 'item'); if ($_SERVER['REQUEST_METHOD'] === 'GET') { if (isset($_GET['id']) && isset($a_tunable[$_GET['id']])) { $id = $_GET['id']; } if (isset($_GET['act'])) { $act = $_GET['act']; } else { $act = null; } $pconfig = array(); if (isset($id)) { $pconfig['tunable'] = $a_tunable[$id]['tunable']; $pconfig['value'] = $a_tunable[$id]['value']; $pconfig['descr'] = $a_tunable[$id]['descr']; } else { $pconfig['tunable'] = null; $pconfig['value'] = null; $pconfig['descr'] = null; } } elseif ($_SERVER['REQUEST_METHOD'] === 'POST') { if (isset($_POST['id']) && isset($a_tunable[$_POST['id']])) { $id = $_POST['id']; } if (isset($_POST['act'])) { $act = $_POST['act']; } else { $act = null; } $pconfig = $_POST; if (isset($id) && $act == "del") { unset($a_tunable[$id]); write_config(); mark_subsystem_dirty('sysctl'); header(url_safe('Location: /system_advanced_sysctl.php')); exit; } else if ($act == 'reset') { // reset tunables to factory defaults (when available) if (file_exists('/usr/local/etc/config.xml.sample')) { $factory_config = load_config_from_file('/usr/local/etc/config.xml.sample'); if (!empty($factory_config['sysctl']) && !empty($factory_config['sysctl']['item'])){ $a_tunable = $factory_config['sysctl']['item']; mark_subsystem_dirty('sysctl'); write_config(); } } header(url_safe('Location: /system_advanced_sysctl.php')); exit; } else if (!empty($pconfig['apply'])) { system_sysctl_configure(); system_login_configure(); clear_subsystem_dirty('sysctl'); header(url_safe('Location: /system_advanced_sysctl.php')); exit; } elseif (!empty($pconfig['Submit'])) { $tunableent = array(); $tunableent['tunable'] = $pconfig['tunable']; $tunableent['value'] = $pconfig['value']; $tunableent['descr'] = $pconfig['descr']; if (isset($id)) { $a_tunable[$id] = $tunableent; } else { $a_tunable[] = $tunableent; } mark_subsystem_dirty('sysctl'); write_config(); header(url_safe('Location: /system_advanced_sysctl.php')); exit; } } /* translate hidden strings before HTML escape */ foreach ($a_tunable as &$tunable) { if (!empty($tunable['descr'])) { $tunable['descr'] = gettext($tunable['descr']); } } legacy_html_escape_form_data($a_tunable); if ($act != 'edit') { $main_buttons = array( array('href' => '#set_defaults', 'label' => gettext('Default')), array('href' => 'system_advanced_sysctl.php?act=edit', 'label' => gettext('Add')), ); } include("head.inc"); legacy_html_escape_form_data($pconfig); ?>
' .gettext('Tunables are composed of runtime settings for sysctl.conf which take effect ' . 'immediately after apply and boot settings for loader.conf which require a reboot.')); } ?>
&$tunable): ?>
"> " data-toggle="tooltip" class="act_delete btn btn-default btn-xs">
  " onclick="window.location.href='/system_advanced_sysctl.php'" />