<?php
require_once('globals.inc');
require_once('config.inc');
require_once('util.inc');
require_once('service-utils.inc');
require_once('filter.inc');

define('VIRUSDIR', '/var/tmp/p3scan');

function p3scan_install_command() {
	global $g;

	$pidfile = "{$g['varrun_path']}/p3scan.pid";
	$rcfile = array();
	$rcfile['file'] = 'p3scan.sh';
	$rcfile['start'] = "p3scan -f /usr/local/etc/p3scan.conf -l $pidfile";
	$rcfile['stop'] = "kill `cat $pidfile`\nrm $pidfile";
	write_rcfile($rcfile);

	make_dirs(VIRUSDIR);
	chown(VIRUSDIR, 'proxy');
	chmod(VIRUSDIR, 0700);
	make_dirs(VIRUSDIR . '/children');
	chown(VIRUSDIR, 'proxy');
	chmod(VIRUSDIR, 0700);

	p3scan_resync();
}

function p3scan_resync() {
	global $g, $config;

	$virusdir = VIRUSDIR;
	$conf = <<<EOD
ip = 127.0.0.1
user = proxy
justdelete
virusregexp = .*: (.*) FOUND
virusdir = $virusdir
spamcheck = /usr/local/bin/spamc
template = /usr/local/etc/p3scan.mail
scannertype = basic

EOD;

	if ($config['installedpackages']['sassassin']['config'][0]['enable'] == 'on')
		$conf .= "checkspam\n";

	$virusen = $config['installedpackages']['clamav']['config'][0]['scan_pop3'];
	if ($virusen == 'on')
		$scanner = '/usr/local/bin/clamdscan --no-summary';
	else
		$scanner = 'echo';
	$conf .= "scanner = $scanner\n";

	file_put_contents('/usr/local/etc/p3scan.conf', $conf);

	restart_service('p3scan');
	filter_configure();
}
?>