mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-20 03:16:12 +00:00
dhcrelay: start on newwanip as well #7805
Requires new plumbing but since all other event listeners are not seeing the new inet/inet6 argument by default this should be fine.
This commit is contained in:
parent
7ce814346b
commit
fda0c429ef
@ -30,8 +30,9 @@ function dhcrelay_configure()
|
||||
{
|
||||
return [
|
||||
'bootup' => ['dhcrelay_configure_do'],
|
||||
'dhcrelay' => ['dhcrelay_configure_do:3'],
|
||||
'dhcrelay' => ['dhcrelay_configure_do:2'],
|
||||
'local' => ['dhcrelay_configure_do'],
|
||||
'newwanip' => ['dhcrelay_ensure_running:3'],
|
||||
];
|
||||
}
|
||||
|
||||
@ -109,7 +110,7 @@ function dhcrelay_configure_do($verbose = false, $id = null)
|
||||
return;
|
||||
}
|
||||
|
||||
service_log('Starting DHCP relays...', $verbose);
|
||||
service_log(sprintf('Starting DHCP relay%s...', empty($id) ? 's' : " {$id}"), $verbose);
|
||||
|
||||
$iflist = get_configured_interface_with_descr();
|
||||
$ifconfig_details = legacy_interfaces_details();
|
||||
@ -172,10 +173,10 @@ function dhcrelay_configure_do($verbose = false, $id = null)
|
||||
service_log("done.\n", $verbose);
|
||||
}
|
||||
|
||||
function dhcrelay_interfaces($family = null)
|
||||
function dhcrelay_instances($family = null)
|
||||
{
|
||||
$mdl = new \OPNsense\DHCRelay\DHCRelay();
|
||||
$interfaces = [];
|
||||
$instances = [];
|
||||
|
||||
foreach ($mdl->relays->iterateItems() as $relay) {
|
||||
if ((string)$relay->enabled != '1') {
|
||||
@ -192,8 +193,30 @@ function dhcrelay_interfaces($family = null)
|
||||
continue;
|
||||
}
|
||||
|
||||
$interfaces[(string)$relay->interface] = 1;
|
||||
if (!isset($instances[(string)$relay->interface])) {
|
||||
$instances[(string)$relay->interface] = [];
|
||||
}
|
||||
|
||||
$instances[(string)$relay->interface][] = $relay->getAttribute('uuid');
|
||||
}
|
||||
|
||||
return array_keys($interfaces);
|
||||
return $instances;
|
||||
}
|
||||
|
||||
function dhcrelay_interfaces($family = null)
|
||||
{
|
||||
return array_keys(dhcrelay_instances($family));
|
||||
}
|
||||
|
||||
function dhcrelay_ensure_running($verbose = false, $interface = null, $family = null)
|
||||
{
|
||||
$instances = dhcrelay_instances($family);
|
||||
|
||||
if (empty($instances[$interface])) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($instances[$interface] as $id) {
|
||||
dhcrelay_configure_do($verbose, $id);
|
||||
}
|
||||
}
|
||||
|
||||
@ -116,5 +116,5 @@ if (is_ipaddr($cacheip) && $ip != $cacheip) {
|
||||
@file_put_contents($cacheip_file, $ip . PHP_EOL);
|
||||
|
||||
plugins_configure('vpn', false, [$interface]);
|
||||
plugins_configure('newwanip', false, [$interface]);
|
||||
plugins_configure('newwanip', false, [$interface, 'inet']);
|
||||
rrd_configure();
|
||||
|
||||
@ -130,7 +130,7 @@ filter_configure_sync();
|
||||
|
||||
foreach ($interfaces as $interface) {
|
||||
plugins_configure('vpn', false, [$interface]);
|
||||
plugins_configure('newwanip', false, [$interface]);
|
||||
plugins_configure('newwanip', false, [$interface, 'inet6']);
|
||||
}
|
||||
|
||||
rrd_configure();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user