From a1609d2d6b6bb7008925a99a7b3a0e86282e7446 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Wed, 1 Jul 2015 15:14:17 +0200 Subject: [PATCH] (ids) autogenerate cron job on enable/disable --- .../OPNsense/IDS/Api/ServiceController.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 e50e4758a..b3fa7c3d1 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/ServiceController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/ServiceController.php @@ -33,6 +33,8 @@ use \OPNsense\Base\Filters\QueryFilter; use \OPNsense\Base\ApiControllerBase; use \OPNsense\Core\Backend; use \OPNsense\IDS\IDS; +use \OPNsense\Cron\Cron; +use \OPNsense\Core\Config; /** * Class ServiceController @@ -124,6 +126,20 @@ class ServiceController extends ApiControllerBase $this->sessionClose(); $mdlIDS = new IDS(); $runStatus = $this->statusAction(); + // we should always have a cron item configured for IDS, let's create one upon first reconfigure. + if ((string)$mdlIDS->general->UpdateCron == "") { + $mdlCron = new Cron(); + // update cron relation ( if this doesn't break consistency) + $mdlIDS->general->UpdateCron = $mdlCron->newDailyJob("IDS", "ids update", "ids rule updates", "0"); + + if ($mdlCron->performValidation()->count() == 0) { + $mdlCron->serializeToConfig(); + // save data to config, do not validate because the current in memory model doesn't know about the + // cron item just created. + $mdlIDS->serializeToConfig($disable_validation = true); + Config::getInstance()->save(); + } + } if ($runStatus['status'] == "running" && (string)$mdlIDS->general->enabled == 0) { $this->stopAction();