diff --git a/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/ServiceController.php b/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/ServiceController.php index 5aac3835b..05a2922c0 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/ServiceController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/ServiceController.php @@ -205,6 +205,28 @@ class ServiceController extends ApiControllerBase return array("status" => $status); } + /** + * flush rule configuration to config and reload suricata ruleset (graceful restart) + * @return array + */ + public function reloadRulesAction() + { + $status = "failed"; + if ($this->request->isPost()) { + // close session for long running action + $this->sessionClose(); + $backend = new Backend(); + // flush rule configuration + $bckresult = trim($backend->configdRun("template reload OPNsense.IDS")); + if ($bckresult == "OK") { + $status = $backend->configdRun("ids reload", $detach); + } else { + $status = "template error"; + } + } + return array("status" => $status); + } + /** * query suricata alerts * @return array