From 05739a0898c2bf6da0ff6df8e38e2902f217f62e Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Mon, 16 Sep 2024 10:05:03 +0200 Subject: [PATCH] system: improve previous and widen its use --- src/etc/inc/plugins.inc.d/dpinger.inc | 3 +-- src/etc/inc/system.inc | 13 ++++++------- src/etc/rc.routing_configure | 6 +++++- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/etc/inc/plugins.inc.d/dpinger.inc b/src/etc/inc/plugins.inc.d/dpinger.inc index 740370220..9c7836e1b 100644 --- a/src/etc/inc/plugins.inc.d/dpinger.inc +++ b/src/etc/inc/plugins.inc.d/dpinger.inc @@ -133,8 +133,7 @@ function dpinger_configure_do($verbose = false, $gwname_map = null) return; } - $suffix = empty($gwname_map) ? 's' : (is_array($gwname_map) && count($gwname_map) > 1 ? 's ' . join(', ', $gwname_map) : ''); - service_log(sprintf('Setting up gateway monitor%s...', $suffix), $verbose); + service_log(sprintf('Setting up gateway monitor%s...', empty($interface_map) ? '' : ' for ' . join(', ', $gwname_map)), $verbose); foreach (dpinger_processes() as $running_gwname => $proc) { if (!empty($gwname_map) && !in_array($running_gwname, $gwname_map)) { diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc index 65e00eff3..187760a48 100644 --- a/src/etc/inc/system.inc +++ b/src/etc/inc/system.inc @@ -774,23 +774,22 @@ function system_routing_configure($verbose = false, $interface_map = null, $moni service_log("done.\n", $verbose); if ($monitor) { - if (!empty($interface_map)) { - $reloads = []; + /* reload requested monitors only or reload in full */ + $gwnames = !empty($interface_map) ? [] : null; + if (!empty($interface_map)) { foreach ($gateways->gatewaysIndexedByName() as $name => $gateway) { if ($family !== null && $family !== $gateway['ipprotocol']) { continue; } if (in_array($gateway['interface'], $interface_map)) { - $reloads[] = $name; + $gwnames[] = $name; } } - - plugins_configure('monitor', $verbose, [$reloads]); - } else { - plugins_configure('monitor', $verbose); } + + plugins_configure('monitor', $verbose, [$gwnames]); } } diff --git a/src/etc/rc.routing_configure b/src/etc/rc.routing_configure index 5916ce5ab..ec236e42c 100755 --- a/src/etc/rc.routing_configure +++ b/src/etc/rc.routing_configure @@ -49,12 +49,16 @@ foreach (glob("/tmp/delete_route_*.todo") as $filename) { system_routing_configure(true, null, !$recover_only); if ($recover_only) { + $gwnames = []; + foreach (return_gateways_status() as $status) { if ($status['status'] == 'down') { /* try to recover monitors stuck in down state ignoring "force_down" */ - plugins_configure('monitor', true, [$status['name']]); + $gwnames[] = $status['name']; } } + + plugins_configure('monitor', true, [$gwnames]); } filter_configure_sync(true, false);