mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-14 16:44:39 +00:00
(legacy) style cleanup rc.newwanip, don't try to loop back to configd if not needed. loosly related to https://github.com/opnsense/core/issues/451
This commit is contained in:
parent
fdc754e426
commit
38d70ed73e
@ -2,30 +2,30 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (C) 2006 Scott Ullrich <sullrich@gmail.com>
|
||||
Copyright (C) 2003-2005 Manuel Kasper <mk@neon1.net>.
|
||||
All rights reserved.
|
||||
Copyright (C) 2006 Scott Ullrich <sullrich@gmail.com>
|
||||
Copyright (C) 2003-2005 Manuel Kasper <mk@neon1.net>.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
*/
|
||||
|
||||
/* parse the configuration and include all functions used below */
|
||||
@ -43,42 +43,43 @@ require_once("unbound.inc");
|
||||
|
||||
// Do not process while booting
|
||||
if (file_exists('/var/run/booting')) {
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Interface IP address has changed */
|
||||
if (isset($argv[1])) {
|
||||
$argument = str_replace("\n", "", $argv[1]);
|
||||
$argument = str_replace("\n", "", $argv[1]);
|
||||
} else {
|
||||
$argument = null;
|
||||
$argument = null;
|
||||
}
|
||||
log_error("rc.newwanip: Informational is starting {$argument}.");
|
||||
|
||||
if (empty($argument)) {
|
||||
$interface = "wan";
|
||||
$interface_real = get_real_interface();
|
||||
$interface = "wan";
|
||||
$interface_real = get_real_interface();
|
||||
} else {
|
||||
$interface = convert_real_interface_to_friendly_interface_name($argument);
|
||||
$interface_real = $argument;
|
||||
$interface = convert_real_interface_to_friendly_interface_name($argument);
|
||||
$interface_real = $argument;
|
||||
}
|
||||
|
||||
$interface_descr = convert_friendly_interface_to_friendly_descr($interface);
|
||||
|
||||
/* If the interface is configured and not enabled, bail. We do not need to change settings for disabled interfaces. #3313 */
|
||||
if (is_array($config['interfaces'][$interface]) && !isset($config['interfaces'][$interface]['enable'])) {
|
||||
log_error("Interface is disabled, nothing to do.");
|
||||
return;
|
||||
log_error("Interface is disabled, nothing to do.");
|
||||
return;
|
||||
} elseif (empty($interface)) {
|
||||
log_error("Interface is empty, nothing to do.");
|
||||
return;
|
||||
log_error("Interface is empty, nothing to do.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (empty($argument))
|
||||
$curwanip = get_interface_ip();
|
||||
else {
|
||||
$curwanip = find_interface_ip($interface_real, true);
|
||||
if($curwanip == "")
|
||||
$curwanip = get_interface_ip($interface);
|
||||
if (empty($argument)) {
|
||||
$curwanip = get_interface_ip();
|
||||
} else {
|
||||
$curwanip = find_interface_ip($interface_real, true);
|
||||
if(empty($curwanip)) {
|
||||
$curwanip = get_interface_ip($interface);
|
||||
}
|
||||
}
|
||||
|
||||
log_error("rc.newwanip: on (IP address: {$curwanip}) (interface: {$interface_descr}[{$interface}]) (real interface: {$interface_real}).");
|
||||
@ -88,83 +89,92 @@ log_error("rc.newwanip: on (IP address: {$curwanip}) (interface: {$interface_des
|
||||
* i.e. OpenVPN might be in tap mode and not have an ip.
|
||||
*/
|
||||
if ($curwanip == "0.0.0.0" || !is_ipaddr($curwanip)) {
|
||||
if (substr($interface_real, 0, 4) != "ovpn") {
|
||||
if (!empty($config['interfaces'][$interface]['ipaddr'])) {
|
||||
log_error("rc.newwanip: Failed to update {$interface} IP, restarting...");
|
||||
configd_run("interface reconfigure {$interface}");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (substr($interface_real, 0, 4) != "ovpn") {
|
||||
if (!empty($config['interfaces'][$interface]['ipaddr'])) {
|
||||
log_error("rc.newwanip: Failed to update {$interface} IP, restarting...");
|
||||
configd_run("interface reconfigure {$interface}");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$oldip = "0.0.0.0";
|
||||
if (file_exists("/var/db/{$interface}_cacheip"))
|
||||
$oldip = file_get_contents("/var/db/{$interface}_cacheip");
|
||||
|
||||
if (file_exists("/var/db/{$interface}_cacheip")) {
|
||||
$oldip = file_get_contents("/var/db/{$interface}_cacheip");
|
||||
} else {
|
||||
$oldip = "0.0.0.0";
|
||||
}
|
||||
|
||||
|
||||
/* regenerate resolv.conf if DNS overrides are allowed */
|
||||
system_resolvconf_generate(true);
|
||||
|
||||
/* write the current interface IP to file */
|
||||
if (is_ipaddr($curwanip))
|
||||
@file_put_contents("/var/db/{$interface}_ip", $curwanip);
|
||||
/* used in src/sbin/dhclient-script.ext */
|
||||
if (is_ipaddr($curwanip)) {
|
||||
@file_put_contents("/var/db/{$interface}_ip", $curwanip);
|
||||
}
|
||||
|
||||
|
||||
link_interface_to_vips($interface, "update");
|
||||
|
||||
unset($gre);
|
||||
$gre = link_interface_to_gre($interface);
|
||||
if (!empty($gre))
|
||||
array_walk($gre, 'interface_gre_configure');
|
||||
unset($gif);
|
||||
if (!empty($gre)) {
|
||||
array_walk($gre, 'interface_gre_configure');
|
||||
}
|
||||
$gif = link_interface_to_gif($interface);
|
||||
if (!empty($gif))
|
||||
array_walk($gif, 'interface_gif_configure');
|
||||
if (!empty($gif)) {
|
||||
array_walk($gif, 'interface_gif_configure');
|
||||
}
|
||||
|
||||
$grouptmp = link_interface_to_group($interface);
|
||||
if (!empty($grouptmp))
|
||||
array_walk($grouptmp, 'interface_group_add_member');
|
||||
if (!empty($grouptmp)) {
|
||||
array_walk($grouptmp, 'interface_group_add_member');
|
||||
}
|
||||
|
||||
unset($bridgetmp);
|
||||
$bridgetmp = link_interface_to_bridge($interface);
|
||||
if (!empty($bridgetmp))
|
||||
interface_bridge_add_member($bridgetmp, $interface_real);
|
||||
if (!empty($bridgetmp)) {
|
||||
interface_bridge_add_member($bridgetmp, $interface_real);
|
||||
}
|
||||
|
||||
/* make new hosts file */
|
||||
system_hosts_generate();
|
||||
|
||||
/* check tunneled IPv6 interface tracking */
|
||||
if (isset($config['interfaces'][$interface]['ipaddrv6'])) {
|
||||
switch($config['interfaces'][$interface]['ipaddrv6']) {
|
||||
case "6to4":
|
||||
interface_6to4_configure($interface, $config['interfaces'][$interface]);
|
||||
break;
|
||||
case "6rd":
|
||||
interface_6rd_configure($interface, $config['interfaces'][$interface]);
|
||||
break;
|
||||
case "dhcp6":
|
||||
if (isset($config['interfaces'][$interface]['dhcp6usev4iface']))
|
||||
interface_dhcpv6_configure($interface, $config['interfaces'][$interface]);
|
||||
break;
|
||||
}
|
||||
switch($config['interfaces'][$interface]['ipaddrv6']) {
|
||||
case "6to4":
|
||||
interface_6to4_configure($interface, $config['interfaces'][$interface]);
|
||||
break;
|
||||
case "6rd":
|
||||
interface_6rd_configure($interface, $config['interfaces'][$interface]);
|
||||
break;
|
||||
case "dhcp6":
|
||||
if (isset($config['interfaces'][$interface]['dhcp6usev4iface'])) {
|
||||
interface_dhcpv6_configure($interface, $config['interfaces'][$interface]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check Gif tunnels */
|
||||
if(isset($config['gifs']['gif']) && is_array($config['gifs']['gif'])){
|
||||
foreach($config['gifs']['gif'] as $gif) {
|
||||
if($gif['if'] == $interface) {
|
||||
foreach($config['interfaces'] as $ifname => $ifparent) {
|
||||
// echo "interface $ifparent, ifname $ifname, gif {$gif['gifif']}\n";
|
||||
if(($ifparent['if'] == $gif['gifif']) && (isset($ifparent['enable']))) {
|
||||
// echo "Running routing configure for $ifname\n";
|
||||
$gif['gifif'] = interface_gif_configure($gif);
|
||||
$confif = convert_real_interface_to_friendly_interface_name($gif['gifif']);
|
||||
if ($confif <> "")
|
||||
interface_configure($confif);
|
||||
system_routing_configure($ifname);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach($config['gifs']['gif'] as $gif) {
|
||||
if($gif['if'] == $interface) {
|
||||
foreach($config['interfaces'] as $ifname => $ifparent) {
|
||||
if(($ifparent['if'] == $gif['gifif']) && (isset($ifparent['enable']))) {
|
||||
$gif['gifif'] = interface_gif_configure($gif);
|
||||
$confif = convert_real_interface_to_friendly_interface_name($gif['gifif']);
|
||||
if (!empty($confif)) {
|
||||
interface_configure($confif);
|
||||
}
|
||||
system_routing_configure($ifname);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -173,40 +183,42 @@ if(isset($config['gifs']['gif']) && is_array($config['gifs']['gif'])){
|
||||
* could be failing back in which case we need to switch IPs back anyhow.
|
||||
*/
|
||||
if (!is_ipaddr($oldip) || $curwanip != $oldip || !is_ipaddrv4($config['interfaces'][$interface]['ipaddr'])) {
|
||||
/* reconfigure static routes (kernel may have deleted them) */
|
||||
system_routing_configure($interface);
|
||||
/* reconfigure static routes (kernel may have deleted them) */
|
||||
system_routing_configure($interface);
|
||||
|
||||
/* reconfigure our gateway monitor */
|
||||
setup_gateways_monitor();
|
||||
/* reconfigure our gateway monitor */
|
||||
setup_gateways_monitor();
|
||||
|
||||
if (is_ipaddr($curwanip))
|
||||
@file_put_contents("/var/db/{$interface}_cacheip", $curwanip);
|
||||
if (is_ipaddr($curwanip)) {
|
||||
@file_put_contents("/var/db/{$interface}_cacheip", $curwanip);
|
||||
}
|
||||
|
||||
/* perform RFC 2136 DNS update */
|
||||
services_dnsupdate_process($interface);
|
||||
/* perform RFC 2136 DNS update */
|
||||
services_dnsupdate_process($interface);
|
||||
|
||||
/* signal dyndns update */
|
||||
services_dyndns_configure($interface);
|
||||
/* signal dyndns update */
|
||||
services_dyndns_configure($interface);
|
||||
|
||||
/* reconfigure IPsec tunnels */
|
||||
vpn_ipsec_force_reload($interface);
|
||||
/* reconfigure IPsec tunnels */
|
||||
vpn_ipsec_force_reload($interface);
|
||||
|
||||
/* start OpenVPN server & clients */
|
||||
if (substr($interface_real, 0, 4) != "ovpn")
|
||||
openvpn_resync_all($interface);
|
||||
/* start OpenVPN server & clients */
|
||||
if (substr($interface_real, 0, 4) != "ovpn") {
|
||||
openvpn_resync_all($interface);
|
||||
}
|
||||
|
||||
/* reload graphing functions */
|
||||
enable_rrd_graphing();
|
||||
/* reload graphing functions */
|
||||
enable_rrd_graphing();
|
||||
|
||||
/* reload igmpproxy */
|
||||
services_igmpproxy_configure();
|
||||
/* reload igmpproxy */
|
||||
services_igmpproxy_configure();
|
||||
|
||||
/* restart snmp */
|
||||
services_snmpd_configure();
|
||||
/* restart snmp */
|
||||
services_snmpd_configure();
|
||||
|
||||
/* reconfigure ntpd */
|
||||
system_ntp_configure(false);
|
||||
/* reconfigure ntpd */
|
||||
system_ntp_configure(false);
|
||||
}
|
||||
|
||||
/* signal filter reload */
|
||||
filter_configure();
|
||||
/* reload filter, don't try to sync to carp slave */
|
||||
filter_configure_sync();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user