diff options
-rw-r--r-- | packages/clamsmtp.inc | 54 | ||||
-rw-r--r-- | packages/clamsmtp.xml | 21 |
2 files changed, 75 insertions, 0 deletions
diff --git a/packages/clamsmtp.inc b/packages/clamsmtp.inc new file mode 100644 index 00000000..08d9e23b --- /dev/null +++ b/packages/clamsmtp.inc @@ -0,0 +1,54 @@ +<?php +require_once('globals.inc'); +require_once('config.inc'); +require_once('service-utils.inc'); +require_once('filter.inc'); + +function clamsmtp_install_command() { + global $g; + + $clamav_rundir = "{$g['varrun_path']}/clamav"; + $pidfile = "$clamav_rundir/clamsmtpd.pid"; + $rcfile = array(); + $rcfile['file'] = 'clamsmtp.sh'; + $rcfile['start'] = "mkdir -p $clamav_rundir\n\tchown proxy:proxy $clamav_rundir\n\tclamsmtpd"; + $rcfile['stop'] = "kill `cat $pidfile`"; + write_rcfile($rcfile); + + clamsmtp_resync(); +} + +function clamsmtp_validate_input($post, $input_errors) { + if (!is_ipaddr(trim($post['smtp_server']))) + $input_errors[] = 'The field \'SMTP server\' must contain a valid IP address.'; + $port = trim($post['smtp_port']); + if (!is_numeric($port) || ($port < 0) || ($port > 65535)) + $input_errors[] = 'The field \'SMTP server\' must contain a port ranging from 0 to 65535'; +} + +function clamsmtp_resync() { + global $g, $config; + + $avconf = $config['installedpackages']['clamav']['config'][0]; + if ($avconf['scan_smtp'] == 'on') + $outaddress = "{$avconf['smtp_server']}:{$avconf['smtp_port']}"; + else + $outaddress = '127.0.0.1:25'; + $clamav_rundir = "{$g['varrun_path']}/clamav"; + $clamsocket = "$clamav_rundir/clamd.socket"; + $pidfile = "$clamav_rundir/clamsmtpd.pid"; + $conf = <<<EOD +Listen: 127.0.0.1:10025 +OutAddress: $outaddress +ClamAddress: $clamsocket +User: proxy +PidFile: $pidfile + +EOD; + + file_put_contents('/usr/local/etc/clamsmtpd.conf', $conf); + + restart_service('clamsmtp'); + filter_configure(); +} +?> diff --git a/packages/clamsmtp.xml b/packages/clamsmtp.xml new file mode 100644 index 00000000..6e1391f7 --- /dev/null +++ b/packages/clamsmtp.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<packagegui> + <include_file>clamsmtp.inc</include_file> + <additional_files_needed> + <item>http://www.pfsense.org/packages/config/clamsmtp.inc</item> + </additional_files_needed> + <additional_files_needed> + <item>http://www.pfsense.org/packages/All/clamsmtpd</item> + <prefix>/usr/local/bin/</prefix> + <chmod>0755</chmod> + </additional_files_needed> + <custom_php_install_command> + clamsmtp_install_command(); + </custom_php_install_command> + <service> + <name>clamsmtp</name> + <description>SMTP virus scanner.</description> + <rcfile>clamsmtp.sh</rcfile> + <executable>clamsmtpd</executable> + </service> +</packagegui> |