diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/OverviewController.php b/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/OverviewController.php index 395f4bffd..d2b672de8 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/OverviewController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/OverviewController.php @@ -33,6 +33,7 @@ use OPNsense\Core\Backend; use OPNsense\Core\Config; use OPNsense\Firewall\Util; use OPNsense\Routing\Gateways; +use OPNsense\Interface\Autoconf; class OverviewController extends ApiControllerBase { @@ -154,16 +155,9 @@ class OverviewController extends ApiControllerBase continue; } /* collect ifctl received properties for this interface */ - foreach (['nameserver', 'prefix', 'router', 'searchdomain'] as $ifctl) { - $items = []; - foreach (['', 'v6'] as $ext) { - if (is_file("/tmp/{$if}_{$ifctl}{$ext}")) { - $items[] = trim(file_get_contents("/tmp/{$if}_{$ifctl}{$ext}")); - } - } - if (!empty($items)) { - $tmp["ifctl.{$ifctl}"] = $items; - } + foreach (Autoconf::all($if) as $key => $value) + { + $tmp["ifctl.{$key}"] = $value; } $tmp['status'] = (!empty($details['flags']) && in_array('up', $details['flags'])) ? 'up' : 'down'; diff --git a/src/opnsense/mvc/app/library/OPNsense/Interface/Autoconf.php b/src/opnsense/mvc/app/library/OPNsense/Interface/Autoconf.php new file mode 100644 index 000000000..f3782e8fc --- /dev/null +++ b/src/opnsense/mvc/app/library/OPNsense/Interface/Autoconf.php @@ -0,0 +1,107 @@ + self::getNameserver($if, $ipproto), + 'prefix' => self::getPrefix($if, $ipproto), + 'router' => self::getRouter($if, $ipproto), + 'searchdomain' => self::getSearchdomain($if, $ipproto) + ]; + foreach ($map as $key => $content) { + if ($content !== null) { + if (!isset($result[$key])) { + $result[$key] = []; + } + $result[$key][] = $content; + } + } + } + return $result; + } +} \ No newline at end of file diff --git a/src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.php b/src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.php index 2c4eaddb4..9da1dbaa3 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.php +++ b/src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.php @@ -1,7 +1,7 @@ getRouterFromFile($realif, $ipproto)) != null) { + } elseif (($router = Autoconf::getRouter($realif, $ipproto)) != null) { $thisconf['gateway'] = $router; if (empty($thisconf['monitor_disable']) && empty($thisconf['monitor'])) { $thisconf['monitor'] = $thisconf['gateway'];