function dhcpv6_apply_changes($dhcpdv6_enable_changed) { $retval = 0; $retvaldhcp = 0; $retvaldns = 0; /* Stop DHCPv6 so we can cleanup leases */ killbypid("{$g['dhcpd_chroot_path']}{$g['varrun_path']}/dhcpdv6.pid"); // dhcp_clean_leases(); /* dnsmasq_configure calls dhcpd_configure */ /* no need to restart dhcpd twice */ if (isset($config['dnsmasq']['enable']) && isset($config['dnsmasq']['regdhcpstatic'])) { $retvaldns = services_dnsmasq_configure(); if ($retvaldns == 0) { clear_subsystem_dirty('hosts'); clear_subsystem_dirty('staticmaps'); } } else { if (isset($config['unbound']['enable']) && isset($config['unbound']['regdhcpstatic'])) { $retvaldns = services_unbound_configure(); if ($retvaldns == 0) { clear_subsystem_dirty('unbound'); clear_subsystem_dirty('staticmaps'); } } else { $retvaldhcp = services_dhcpd_configure(); if ($retvaldhcp == 0) { clear_subsystem_dirty('staticmaps'); } } } if ($dhcpdv6_enable_changed) { $retvalfc = filter_configure(); } if ($retvaldhcp == 1 || $retvaldns == 1 || $retvalfc == 1) { $retval = 1; } return get_std_save_message($retval); }
} else { $pconfig['active_interface'] = explode(",", $a_unboundcfg['active_interface']); } if (empty($a_unboundcfg['outgoing_interface'])) { $pconfig['outgoing_interface'] = array(); } else { $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."); }
$url = "{$prot}://{$host}/system_advanced_admin.php"; } } write_config(); $retval = filter_configure(); $savemsg = get_std_save_message($retval); if ($restart_webgui) { $savemsg .= sprintf("<br />" . gettext("One moment...redirecting to %s in 20 seconds."), $url); } conf_mount_rw(); setup_serial_port(); // Restart DNS in case dns rebinding toggled if (isset($config['dnsmasq']['enable'])) { services_dnsmasq_configure(); } elseif (isset($config['unbound']['enable'])) { services_unbound_configure(); } conf_mount_ro(); } } $pgtitle = array(gettext("System"), gettext("Advanced"), gettext("Admin Access")); include "head.inc"; if ($input_errors) { print_input_errors($input_errors); } if ($savemsg) { print_info_box($savemsg, 'success'); } $tab_array = array(); $tab_array[] = array(gettext("Admin Access"), true, "system_advanced_admin.php"); $tab_array[] = array(gettext("Firewall / NAT"), false, "system_advanced_firewall.php");
function service_control_restart($name, $extras) { switch ($name) { case 'radvd': services_radvd_configure(); break; case 'ntpd': system_ntp_configure(); break; case 'apinger': killbypid("/var/run/apinger.pid"); setup_gateways_monitor(); break; case 'bsnmpd': services_snmpd_configure(); break; case 'dhcrelay': services_dhcrelay_configure(); break; case 'dhcrelay6': services_dhcrelay6_configure(); break; case 'dnsmasq': services_dnsmasq_configure(); break; case 'unbound': services_unbound_configure(); break; case 'dhcpd': services_dhcpd_configure(); break; case 'igmpproxy': services_igmpproxy_configure(); break; case 'miniupnpd': upnp_action('restart'); break; case 'ipsec': vpn_ipsec_force_reload(); break; case 'sshd': configd_run("sshd restart"); break; case 'openvpn': $vpnmode = htmlspecialchars($extras['vpnmode']); if ($vpnmode == "server" || $vpnmode == "client") { $id = htmlspecialchars($extras['id']); $configfile = "/var/etc/openvpn/{$vpnmode}{$id}.conf"; if (file_exists($configfile)) { openvpn_restart_by_vpnid($vpnmode, $id); } } break; case 'relayd': relayd_configure(true); break; case 'squid': configd_run("proxy restart"); break; case 'suricata': configd_run("ids restart"); break; default: log_error(sprintf(gettext("Could not restart unknown service `%s'"), $name)); break; } return sprintf(gettext("%s has been restarted."), htmlspecialchars($name)); }
function filter_configure_xmlrpc($raw_params) { global $xmlrpc_g, $config; $params = xmlrpc_params_to_php($raw_params); if (!xmlrpc_auth($params)) { xmlrpc_authfail(); return $xmlrpc_g['return']['authfail']; } filter_configure(); system_routing_configure(); setup_gateways_monitor(); relayd_configure(); require_once "openvpn.inc"; openvpn_resync_all(); if (isset($config['dnsmasq']['enable'])) { services_dnsmasq_configure(); } elseif (isset($config['unbound']['enable'])) { services_unbound_configure(); } else { # Both calls above run services_dhcpd_configure(), then we just # need to call it when they are not called to avoid restarting dhcpd # twice, as described on ticket #3797 services_dhcpd_configure(); } local_sync_accounts(); return $xmlrpc_g['return']['true']; }
/** * Wrapper for filter_configure() * * @param string $username * @param string $password * * @return bool */ public function filter_configure($username, $password) { $this->auth($username, $password); global $g, $config; filter_configure(); system_routing_configure(); setup_gateways_monitor(); relayd_configure(); require_once "openvpn.inc"; openvpn_resync_all(); /* * The DNS Resolver and the DNS Forwarder may both be active so * long as * they are running on different ports. * See ticket #5882 */ if (isset($config['dnsmasq']['enable'])) { /* Configure dnsmasq but tell it NOT to restart DHCP */ services_dnsmasq_configure(false); } else { /* kill any running dnsmasq instance */ if (isvalidpid("{$g['varrun_path']}/dnsmasq.pid")) { sigkillbypid("{$g['varrun_path']}/dnsmasq.pid", "TERM"); } } if (isset($config['unbound']['enable'])) { /* Configure unbound but tell it NOT to restart DHCP */ services_unbound_configure(false); } else { /* kill any running Unbound instance */ if (isvalidpid("{$g['varrun_path']}/unbound.pid")) { sigkillbypid("{$g['varrun_path']}/unbound.pid", "TERM"); } } /* * Call this separately since the above are manually set to * skip the DHCP restart they normally perform. * This avoids restarting dhcpd twice as described on * ticket #3797 */ services_dhcpd_configure(); local_sync_accounts(); return true; }
function filter_configure_xmlrpc($raw_params) { global $xmlrpc_g, $g, $config; $params = xmlrpc_params_to_php($raw_params); if (!xmlrpc_auth($params)) { xmlrpc_authfail(); return $xmlrpc_g['return']['authfail']; } filter_configure(); system_routing_configure(); setup_gateways_monitor(); relayd_configure(); require_once "openvpn.inc"; openvpn_resync_all(); /* The DNS Resolver and the DNS Forwarder may both be active so long as * they are running on different ports. See ticket #5882 */ $need_dhcp_start = true; if (isset($config['dnsmasq']['enable'])) { /* Configure dnsmasq but tell it NOT to restart DHCP */ services_dnsmasq_configure(false); } else { /* kill any running dnsmasq since it is not enabled. */ if (file_exists("{$g['varrun_path']}/dnsmasq.pid")) { sigkillbypid("{$g['varrun_path']}/dnsmasq.pid", "TERM"); } } if (isset($config['unbound']['enable'])) { /* Configure unbound but tell it NOT to restart DHCP */ services_unbound_configure(false); } else { /* kill any running Unbound instance since it is not enabled. */ if (file_exists("{$g['varrun_path']}/unbound.pid")) { sigkillbypid("{$g['varrun_path']}/unbound.pid", "TERM"); } } /* Call this separately since the above are manually set to skip the DHCP restart they normally perform. * This avoids restarting dhcpd twice as described on ticket #3797 */ services_dhcpd_configure(); local_sync_accounts(); return $xmlrpc_g['return']['true']; }