diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php index b32b42680..40b96f97a 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php @@ -130,19 +130,18 @@ class FirmwareController extends ApiControllerBase { $this->sessionClose(); // long running action, close session + $response = array('local' => array(), 'remote' => array()); + $backend = new Backend(); $remote = $backend->configdRun('firmware remote'); $local = $backend->configdRun('firmware local'); + /* * pkg(8) returns malformed json by simply outputting each * indivudual package json block... fix it up for now. */ $local = str_replace("\n}\n", "\n},\n", trim($local)); $local = json_decode('[' . $local . ']', true); - /* Remote packages are only a flat list */ - $remote = explode("\n", trim($remote)); - - $response = array('local' => array(), 'remote' => $remote); if ($local != null) { $keep = array('name', 'version', 'comment', 'www', 'flatsize', 'licenses', 'desc', 'categories'); foreach ($local as $infos) { @@ -156,6 +155,13 @@ class FirmwareController extends ApiControllerBase } } + /* Remote packages are only a flat list */ + $remote = explode("\n", trim($remote)); + foreach ($remote as $name) { + /* keep layout compatible with the above */ + $response['remote'][] = array('name' => $name); + } + return $response; } }