diff --git a/src/etc/inc/plugins.inc.d/dpinger.inc b/src/etc/inc/plugins.inc.d/dpinger.inc index ea1dceac7..a69e0835a 100644 --- a/src/etc/inc/plugins.inc.d/dpinger.inc +++ b/src/etc/inc/plugins.inc.d/dpinger.inc @@ -99,7 +99,7 @@ function dpinger_syslog() function dpinger_configure_do($verbose = false, $gwname = null, $bootup = false) { if ($verbose) { - echo 'Setting up gateway monitors...'; + echo sprintf('Setting up gateway monitor%s...', empty($gwname) ? 's': " {$gwname}"); flush(); } @@ -114,7 +114,7 @@ function dpinger_configure_do($verbose = false, $gwname = null, $bootup = false) $ifconfig_details = legacy_interfaces_details(); $gateways = new \OPNsense\Routing\Gateways($ifconfig_details); - $monitor_ips = array(); + $monitor_ips = []; $dpinger_default = dpinger_defaults(); foreach ($gateways->gatewaysIndexedByName(true) as $name => $gateway) { diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc index 8f8fb2b89..5b834d30a 100644 --- a/src/etc/inc/system.inc +++ b/src/etc/inc/system.inc @@ -590,7 +590,7 @@ function system_default_route($gateway, $family, $interface, $far = false) mwexecf('/sbin/route add -%s default %s', array($family, $gateway)); } -function system_routing_configure($verbose = false, $interface = '') +function system_routing_configure($verbose = false, $interface = null, $monitor = true) { if ($verbose) { echo 'Setting up routes...'; @@ -625,9 +625,25 @@ function system_routing_configure($verbose = false, $interface = '') if ($verbose) { echo "done.\n"; } + + if ($monitor) { + $reloads = []; + + if (!empty($interface)) { + foreach ($gateways->gatewaysIndexedByName(true) as $name => $gateway) { + if ($interface == $gateway['interface']) { + $reloads[] = $name; + } + } + } + + foreach (count($reloads) ? $reloads : [null] as $reload) { + plugins_configure('monitor', $verbose, [$reload]); + } + } } -function system_staticroutes_configure($interface = '') +function system_staticroutes_configure($interface = null) { $static_routes = get_staticroutes(false); if (count($static_routes)) { diff --git a/src/etc/rc.bootup b/src/etc/rc.bootup index 116628d70..5f3fed68a 100755 --- a/src/etc/rc.bootup +++ b/src/etc/rc.bootup @@ -91,7 +91,7 @@ interfaces_configure(true); system_resolvconf_generate(true); filter_configure_sync(true); plugins_configure('early', true); -system_routing_configure(true); +system_routing_configure(true, null, false); system_hosts_generate(true); plugins_configure('dhcp', true); diff --git a/src/etc/rc.newwanip b/src/etc/rc.newwanip index 50d2f0e99..97843530c 100755 --- a/src/etc/rc.newwanip +++ b/src/etc/rc.newwanip @@ -165,7 +165,6 @@ $intf_ipaddr = $config['interfaces'][$interface]['ipaddr']; if ($ip != $cacheip || (!is_ipaddr($intf_ipaddr) && $intf_ipaddr != 'dhcp')) { system_routing_configure(false, $interface); - plugins_configure('monitor'); filter_configure_sync(); if (isset($config['system']['ip_change_kill_states'])) { diff --git a/src/etc/rc.newwanipv6 b/src/etc/rc.newwanipv6 index 6a4c70c28..551b4adac 100755 --- a/src/etc/rc.newwanipv6 +++ b/src/etc/rc.newwanipv6 @@ -99,7 +99,6 @@ if ($config['interfaces'][$interface]['ipaddrv6'] == 'slaac') { link_interface_to_track6($interface, true); system_routing_configure(false, $interface); -plugins_configure('monitor'); filter_configure_sync(); /* register IP change not before this point as basic connectivity is needed */ diff --git a/src/etc/rc.routing_configure b/src/etc/rc.routing_configure index 862c56fbc..ed1449d86 100755 --- a/src/etc/rc.routing_configure +++ b/src/etc/rc.routing_configure @@ -42,5 +42,4 @@ foreach (glob("/tmp/delete_route_*.todo") as $filename) { } system_routing_configure(true); -plugins_configure('monitor', true); filter_configure_sync(true); diff --git a/src/opnsense/scripts/shell/setaddr.php b/src/opnsense/scripts/shell/setaddr.php index d42f6c307..e125c0ade 100755 --- a/src/opnsense/scripts/shell/setaddr.php +++ b/src/opnsense/scripts/shell/setaddr.php @@ -573,7 +573,6 @@ system_hosts_generate(true); system_resolvconf_generate(true); interface_bring_down($interface); interface_configure(true, $interface, true); -plugins_configure('monitor', true); filter_configure_sync(true); if ($restart_dhcpd) { diff --git a/src/www/interfaces.php b/src/www/interfaces.php index b7965ed50..1d0018496 100644 --- a/src/www/interfaces.php +++ b/src/www/interfaces.php @@ -582,10 +582,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { } system_routing_configure(); - plugins_configure('monitor'); filter_configure(); foreach ($toapplylist as $ifapply => $ifcfgo) { - plugins_configure('newwanip', false, array($ifapply)); + plugins_configure('newwanip', false, [$ifapply]); } rrd_configure(); } diff --git a/src/www/system_gateways.php b/src/www/system_gateways.php index 412110ce2..4cbd10a20 100644 --- a/src/www/system_gateways.php +++ b/src/www/system_gateways.php @@ -129,7 +129,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { // apply changes, reconfigure system_routing_configure(); clear_subsystem_dirty('staticroutes'); - plugins_configure('monitor'); filter_configure(); header(url_safe('Location: /system_gateways.php?displaysave=true')); exit;