diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php b/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php index 622512fb0..c303b7f63 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php @@ -168,15 +168,17 @@ class ApiControllerBase extends ControllerRoot * @param string $action configd action to perform * @param array $params list of parameters * @param array $headers http headers to send before pushing data + * @param int $poll_timeout poll timeout after connect */ protected function configdStream( $action, $params = [], $headers = [ 'Content-Type: application/json', 'Content-Transfer-Encoding: binary', 'Pragma: no-cache', 'Expires: 0' - ] + ], + $poll_timeout = 2 ) { - $response = (new Backend())->configdpStream($action, $params); + $response = (new Backend())->configdpStream($action, $params, $poll_timeout); foreach ($headers as $header) { header($header); } diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/CpuUsageController.php b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/CpuUsageController.php index 6ed986c66..db1194580 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/CpuUsageController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/CpuUsageController.php @@ -29,8 +29,6 @@ namespace OPNsense\Diagnostics\Api; use OPNsense\Base\ApiControllerBase; -use OPNsense\Core\Config; -use OPNsense\Core\Backend; /** * Class CpuUsage diff --git a/src/opnsense/mvc/app/library/OPNsense/Core/Backend.php b/src/opnsense/mvc/app/library/OPNsense/Core/Backend.php index 2f89d4c24..11715c003 100644 --- a/src/opnsense/mvc/app/library/OPNsense/Core/Backend.php +++ b/src/opnsense/mvc/app/library/OPNsense/Core/Backend.php @@ -64,13 +64,12 @@ class Backend * @param bool $detach detach process * @param int $timeout timeout in seconds * @param int $connect_timeout connect timeout in seconds + * @param int $poll_timeout poll timeout after connect * @return resource|null * @throws \Exception */ - public function configdStream($event, $detach = false, $timeout = 120, $connect_timeout = 10) + public function configdStream($event, $detach = false, $timeout = 120, $connect_timeout = 10, $poll_timeout = 2) { - $poll_timeout = 2; // poll timeout interval - // wait until socket exist for a maximum of $connect_timeout $timeout_wait = $connect_timeout; $errorMessage = ""; @@ -107,13 +106,14 @@ class Backend * send event to backend using command parameter list (which will be quoted for proper handling) * @param string $event event string * @param array $params list of parameters to send with command + * @param int $poll_timeout poll timeout after connect * @param bool $detach detach process * @param int $timeout timeout in seconds * @param int $connect_timeout connect timeout in seconds * @return resource|null * @throws \Exception */ - public function configdpStream($event, $params = [], $detach = false, $timeout = 120, $connect_timeout = 10) + public function configdpStream($event, $params = [], $poll_timeout = 2, $detach = false, $timeout = 120, $connect_timeout = 10) { if (!is_array($params)) { /* just in case there's only one parameter */ @@ -124,7 +124,7 @@ class Backend $event .= ' ' . escapeshellarg($param ?? ''); } - return $this->configdStream($event, $detach, $timeout, $connect_timeout); + return $this->configdStream($event, $detach, $timeout, $connect_timeout, $poll_timeout); }