From cb207ff3223fa41d8f7d9e8e795f4083186b06c8 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Tue, 28 Nov 2017 22:02:31 +0100 Subject: [PATCH] security/clamav: merge version 1.3 from master --- security/clamav/Makefile | 2 +- .../OPNsense/ClamAV/Api/ServiceController.php | 36 +++++++++++-------- .../OPNsense/ClamAV/forms/version.xml | 6 ++-- .../app/models/OPNsense/ClamAV/Menu/Menu.xml | 5 ++- .../app/views/OPNsense/ClamAV/general.volt | 4 +-- .../scripts/OPNsense/ClamAV/freshclam.sh | 5 +-- .../scripts/OPNsense/ClamAV/versions.sh | 6 ++++ .../conf/actions.d/actions_clamav.conf | 2 +- security/clamav/src/www/diag_logs_clamav.php | 18 ++++++++++ 9 files changed, 59 insertions(+), 25 deletions(-) create mode 100755 security/clamav/src/opnsense/scripts/OPNsense/ClamAV/versions.sh create mode 100644 security/clamav/src/www/diag_logs_clamav.php diff --git a/security/clamav/Makefile b/security/clamav/Makefile index 161d68673..9078b7c06 100644 --- a/security/clamav/Makefile +++ b/security/clamav/Makefile @@ -1,5 +1,5 @@ PLUGIN_NAME= clamav -PLUGIN_VERSION= 1.1 +PLUGIN_VERSION= 1.3 PLUGIN_COMMENT= Antivirus engine for detecting malicious threats PLUGIN_DEPENDS= clamav PLUGIN_MAINTAINER= m.muenz@gmail.com 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 d6879f97e..c77381c98 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 @@ -66,8 +66,11 @@ class ServiceController extends ApiControllerBase public function startAction() { if ($this->request->isPost()) { + // close session for long running action + $this->sessionClose(); + $backend = new Backend(); - $response = $backend->configdRun("clamav start", true); + $response = $backend->configdRun("clamav start"); return array("response" => $response); } else { return array("response" => array()); @@ -81,6 +84,9 @@ class ServiceController extends ApiControllerBase public function stopAction() { if ($this->request->isPost()) { + // close session for long running action + $this->sessionClose(); + $backend = new Backend(); $response = $backend->configdRun("clamav stop"); return array("response" => $response); @@ -96,6 +102,9 @@ class ServiceController extends ApiControllerBase public function restartAction() { if ($this->request->isPost()) { + // close session for long running action + $this->sessionClose(); + $backend = new Backend(); $response = $backend->configdRun("clamav restart"); return array("response" => $response); @@ -129,7 +138,6 @@ class ServiceController extends ApiControllerBase $status = "unkown"; } - return array("status" => $status); } @@ -170,25 +178,23 @@ class ServiceController extends ApiControllerBase 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: ") + "clamav" => array("Version"), + "main" => array("main.cvd", "main.cld"), + "daily" => array("daily.cvd", "daily.cld"), + "bytecode" => array("bytecode.cvd", "bytecode.cld"), + "signatures" => array("Total number of signatures") ); $backend = new Backend(); $result = array(); - $response = $backend->configdRun("clamav version"); + $response = json_decode($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; - } + foreach ($response as $key => $value) { + foreach ($infos as $info_key => $info) { + if (in_array($key, $info)) { + $result[$info_key] = $value; } } + } return array("version" => $result); } 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 index 166fd3d59..e1cd2027a 100644 --- 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 @@ -6,17 +6,17 @@ version.main - + info version.daily - + info version.bytecode - + info diff --git a/security/clamav/src/opnsense/mvc/app/models/OPNsense/ClamAV/Menu/Menu.xml b/security/clamav/src/opnsense/mvc/app/models/OPNsense/ClamAV/Menu/Menu.xml index f5e43ec53..f0e79b797 100644 --- a/security/clamav/src/opnsense/mvc/app/models/OPNsense/ClamAV/Menu/Menu.xml +++ b/security/clamav/src/opnsense/mvc/app/models/OPNsense/ClamAV/Menu/Menu.xml @@ -1,5 +1,8 @@ - + + + + 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 e574f1fe9..90335480d 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 @@ -41,9 +41,9 @@ POSSIBILITY OF SUCH DAMAGE.
{{ partial("layout_partials/base_form",['fields':generalForm,'id':'frm_general_settings'])}} -
- +
+
diff --git a/security/clamav/src/opnsense/scripts/OPNsense/ClamAV/freshclam.sh b/security/clamav/src/opnsense/scripts/OPNsense/ClamAV/freshclam.sh index e54851c70..5ce3c3d66 100755 --- a/security/clamav/src/opnsense/scripts/OPNsense/ClamAV/freshclam.sh +++ b/security/clamav/src/opnsense/scripts/OPNsense/ClamAV/freshclam.sh @@ -26,10 +26,11 @@ # SUCH DAMAGE. PIDFILE="/var/run/clamav/freshclam-init.pid" -DBFILE="/var/db/clamav/main.cvd" +CVDDBFILE="/var/db/clamav/main.cvd" +CLDDBFILE="/var/db/clamav/main.cld" COMMAND="${1}" -if [ -f ${DBFILE} ]; then +if [ -f ${CVDDBFILE} -o -f ${CLDDBFILE} ]; then echo "done" elif pgrep -qF ${PIDFILE} 2> /dev/null; then echo "running" diff --git a/security/clamav/src/opnsense/scripts/OPNsense/ClamAV/versions.sh b/security/clamav/src/opnsense/scripts/OPNsense/ClamAV/versions.sh new file mode 100755 index 000000000..513923a0c --- /dev/null +++ b/security/clamav/src/opnsense/scripts/OPNsense/ClamAV/versions.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +echo -n "{" +clamconf | sed -n '/Database information/,/^$/p' | tail +2 | grep : | while read line ; do key=`echo $line | cut -d':' -f1`; value=`echo $line | cut -d':' -f2-` ; echo "\"$key\": \"$value\""; done | tr "\n", "," +clamconf | sed -n '/Software settings/,/^$/p' | tail +2 | grep : | while read line ; do key=`echo $line | cut -d':' -f1`; value=`echo $line | cut -d':' -f2-` ; echo "\"$key\": \"$value\""; done | tr "\n", "," | sed 's/,$//' +echo "}" 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 63a6808e0..5203cf626 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 @@ -35,7 +35,7 @@ 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:" +command:/usr/local/opnsense/scripts/OPNsense/ClamAV/versions.sh parameters: type:script_output message:Get ClamAV and signature versions diff --git a/security/clamav/src/www/diag_logs_clamav.php b/security/clamav/src/www/diag_logs_clamav.php new file mode 100644 index 000000000..22523a7a4 --- /dev/null +++ b/security/clamav/src/www/diag_logs_clamav.php @@ -0,0 +1,18 @@ +