DHCPDv6: stream read log and leases files for "dhcpd update prefixes" action, see https://forum.opnsense.org/index.php?topic=27319.msg132541#msg132541

This commit is contained in:
Ad Schellevis 2022-03-04 19:38:43 +01:00
parent c5c1ed9121
commit 71a8da452c

View File

@ -30,12 +30,13 @@
require_once 'util.inc';
$leases_file = "/var/dhcpd/var/db/dhcpd6.leases";
$dhcpd_log = "/var/log/dhcpd/latest.log";
if (!file_exists($leases_file)) {
exit(1);
}
$duid_arr = [];
foreach (file($leases_file) as $line) {
foreach (new SplFileObject($leases_file) as $line) {
if (preg_match("/^(ia-[np][ad])[ ]+\"(.*?)\"/i ", $line, $duidmatch)) {
$type = $duidmatch[1];
$duid = $duidmatch[2];
@ -92,20 +93,15 @@ if (count($routes) > 0) {
}
}
exec('opnsense-log dhcpd 2> /dev/null', $log, $ret);
if ($ret > 0) {
$log = [];
}
$expires = [];
foreach ($log as $line) {
if (preg_match("/releases[ ]+prefix[ ]+([0-9a-f:]+\/[0-9]+)/i", $line, $expire)) {
if (in_array($expire[1], $routes)) {
continue;
if (is_file($dhcpd_log)) {
foreach (new SplFileObject($dhcpd_log) as $line) {
if (preg_match("/releases[ ]+prefix[ ]+([0-9a-f:]+\/[0-9]+)/i", $line, $expire)) {
if (in_array($expire[1], $routes)) {
continue;
}
$expires[$expire[1]] = $expire[1];
}
$expires[$expire[1]] = $expire[1];
}
}