diff --git a/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/Api/ServiceController.php b/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/Api/ServiceController.php index 6d3c648b0..d6879f97e 100644 --- a/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/Api/ServiceController.php +++ b/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/Api/ServiceController.php @@ -163,4 +163,37 @@ class ServiceController extends ApiControllerBase return array("status" => "failed"); } } + + /** + * get ClamAV and signature versions + */ + public function versionAction() + { + $infos = array( + "clamav" => array("search" => "Version: "), + "main" => array("search" => "main.cvd: "), + "daily" => array("search" => "daily.cld: "), + "bytecode" => array("search" => "bytecode.cld: "), + "signatures" => array("search" => "Total number of signatures: ") + ); + $backend = new Backend(); + $result = array(); + $response = $backend->configdRun("clamav version"); + if ($response != null) { + foreach (explode("\n", $response) as $str) { + foreach ($infos as $key => $info) { + if (strpos($str, $info["search"]) !== false) { + $version = substr($str, strlen($info["search"])); + if (isset($version)) { + $result[$key] = $version; + } + } + } + } + return array("version" => $result); + } + else { + return array(); + } + } } diff --git a/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/GeneralController.php b/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/GeneralController.php index d78528fb4..6e2eb9c0b 100644 --- a/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/GeneralController.php +++ b/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/GeneralController.php @@ -34,6 +34,7 @@ class GeneralController extends \OPNsense\Base\IndexController { $this->view->title = gettext("ClamAV Settings"); $this->view->generalForm = $this->getForm("general"); + $this->view->versionForm = $this->getForm("version"); $this->view->pick('OPNsense/ClamAV/general'); } } diff --git a/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/forms/version.xml b/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/forms/version.xml new file mode 100644 index 000000000..65df363ba --- /dev/null +++ b/security/clamav/src/opnsense/mvc/app/controllers/OPNsense/ClamAV/forms/version.xml @@ -0,0 +1,27 @@ +
+ + version.clamav + + info + + + version.main + + info + + + version.daily + + info + + + version.bytecode + + info + + + version.signatures + + info + +
\ No newline at end of file diff --git a/security/clamav/src/opnsense/mvc/app/views/OPNsense/ClamAV/general.volt b/security/clamav/src/opnsense/mvc/app/views/OPNsense/ClamAV/general.volt index 8e4197723..e574f1fe9 100644 --- a/security/clamav/src/opnsense/mvc/app/views/OPNsense/ClamAV/general.volt +++ b/security/clamav/src/opnsense/mvc/app/views/OPNsense/ClamAV/general.volt @@ -32,6 +32,11 @@ POSSIBILITY OF SUCH DAMAGE.
{{ lang._('No signature database found, please download before use. The download will take several minutes and this message will disappear when it has been completed.') }}
+ +
@@ -42,6 +47,11 @@ POSSIBILITY OF SUCH DAMAGE.
+
+
+ {{ partial("layout_partials/base_form",['fields':versionForm,'id':'frm_version'])}} +
+
diff --git a/security/clamav/src/opnsense/service/conf/actions.d/actions_clamav.conf b/security/clamav/src/opnsense/service/conf/actions.d/actions_clamav.conf index 8e185dfe3..63a6808e0 100644 --- a/security/clamav/src/opnsense/service/conf/actions.d/actions_clamav.conf +++ b/security/clamav/src/opnsense/service/conf/actions.d/actions_clamav.conf @@ -33,3 +33,9 @@ command:/usr/local/opnsense/scripts/OPNsense/ClamAV/freshclam.sh parameters:%s type:script_output message:Check or install signatures + +[version] +command:/usr/local/bin/clamconf | grep "Version:\|main.cvd: version\|.cld: version\|Total number of signatures:" +parameters: +type:script_output +message:Get ClamAV and signature versions