if (is_ipaddrv4($olddnsservers[$dnscounter - 1])) { mwexec("/sbin/route delete " . escapeshellarg($olddnsservers[$dnscounter - 1])); } else { if (is_ipaddrv6($olddnsservers[$dnscounter - 1])) { mwexec("/sbin/route delete -inet6 " . escapeshellarg($olddnsservers[$dnscounter - 1])); } } } } if ($changecount > 0) { write_config($changedesc); } $retval = 0; $retval = system_hostname_configure(); $retval |= system_hosts_generate(); $retval |= system_resolvconf_generate(); if (isset($config['dnsmasq']['enable'])) { $retval |= services_dnsmasq_configure(); } elseif (isset($config['unbound']['enable'])) { $retval |= services_unbound_configure(); } $retval |= system_timezone_configure(); $retval |= system_ntp_configure(); if ($olddnsallowoverride != $config['system']['dnsallowoverride']) { $retval |= send_event("service reload dns"); } // Reload the filter - plugins might need to be run. $retval |= filter_configure(); $savemsg = get_std_save_message($retval); } unset($ignore_posted_dnsgw);
$pconfig['outgoing_interface'] = explode(",", $a_unboundcfg['outgoing_interface']); } if (empty($a_unboundcfg['system_domain_local_zone_type'])) { $pconfig['system_domain_local_zone_type'] = "transparent"; } else { $pconfig['system_domain_local_zone_type'] = $a_unboundcfg['system_domain_local_zone_type']; } if ($_POST) { if ($_POST['apply']) { $retval = services_unbound_configure(); $savemsg = get_std_save_message($retval); if ($retval == 0) { clear_subsystem_dirty('unbound'); } /* Update resolv.conf in case the interface bindings exclude localhost. */ system_resolvconf_generate(); /* Start or restart dhcpleases when it's necessary */ system_dhcpleases_configure(); } else { $pconfig = $_POST; unset($input_errors); if (isset($pconfig['enable']) && isset($config['dnsmasq']['enable'])) { if ($pconfig['port'] == $config['dnsmasq']['port']) { $input_errors[] = gettext("The DNS Forwarder is enabled using this port. Choose a non-conflicting port, or disable the DNS Forwarder."); } } if (empty($pconfig['active_interface'])) { $input_errors[] = gettext("One or more Network Interfaces must be selected for binding."); } else { if (!isset($config['system']['dnslocalhost']) && (!in_array("lo0", $pconfig['active_interface']) && !in_array("all", $pconfig['active_interface']))) { $input_errors[] = gettext("This system is configured to use the DNS Resolver as its DNS server, so Localhost or All must be selected in Network Interfaces.");
unset($config['system']['dhcpbackup']); } } // Add/Remove RAM disk periodic backup cron jobs according to settings and installation type. // Remove the cron jobs on full install if not using RAM disk. // Add the cron jobs on all others if the periodic backup option is set. Otherwise the cron job is removed. if ($g['platform'] == $g['product_name'] && !isset($config['system']['use_mfs_tmpvar'])) { install_cron_job("/etc/rc.backup_rrd.sh", false); install_cron_job("/etc/rc.backup_dhcpleases.sh", false); } else { install_cron_job("/etc/rc.backup_rrd.sh", $config['system']['rrdbackup'] > 0, $minute = "0", "*/{$config['system']['rrdbackup']}"); install_cron_job("/etc/rc.backup_dhcpleases.sh", $config['system']['dhcpbackup'] > 0, $minute = "0", "*/{$config['system']['dhcpbackup']}"); } write_config(); $retval = 0; system_resolvconf_generate(true); $retval = filter_configure(); if (stristr($retval, "error") != true) { $savemsg = get_std_save_message(gettext($retval)); } else { $savemsg = gettext($retval); } activate_powerd(); load_crypto(); load_thermal_hardware(); if ($need_relayd_restart) { relayd_configure(); } } } $pgtitle = array(gettext("System"), gettext("Advanced"), gettext("Miscellaneous"));