From 223c561a0f05d3625053dab5309aae1f490a40e6 Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Fri, 22 May 2015 13:39:49 -0400
Subject: [PATCH] - merged some functions and removed duplicate code

---
 install/dist/lib/centos_base.lib.php |  102 +++++++
 install/dist/lib/centos53.lib.php    |  145 ----------
 install/lib/installer_base.lib.php   |    6 
 install/dist/lib/fedora.lib.php      |  107 +-------
 install/dist/lib/centos70.lib.php    |  135 ----------
 install/dist/lib/opensuse.lib.php    |  132 ---------
 install/dist/lib/centos52.lib.php    |  145 ----------
 7 files changed, 140 insertions(+), 632 deletions(-)

diff --git a/install/dist/lib/centos52.lib.php b/install/dist/lib/centos52.lib.php
index 7e7cf73..2cec344 100644
--- a/install/dist/lib/centos52.lib.php
+++ b/install/dist/lib/centos52.lib.php
@@ -28,150 +28,13 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-class installer extends installer_dist {
+require_once realpath(dirname(__FILE__)) . '/centos_base.lib.php';
 
-	public function configure_mailman($status = 'insert') {
-		global $conf;
+class installer extends installer_centos {
 
-		$config_dir = $conf['mailman']['config_dir'].'/';
-		$full_file_name = $config_dir.'mm_cfg.py';
-		//* Backup exiting file
-		if(is_file($full_file_name)) {
-			copy($full_file_name, $config_dir.'mm_cfg.py~');
-		}
+	protected $clamav_socket = '/tmp/clamd.socket';
 
-		// load files
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mm_cfg.py.master', 'tpl/mm_cfg.py.master');
-		$old_file = rf($full_file_name);
-
-		$old_options = array();
-		$lines = explode("\n", $old_file);
-		foreach ($lines as $line)
-		{
-			if (trim($line) != '' && substr($line, 0, 1) != '#')
-			{
-				@list($key, $value) = @explode("=", $line);
-				if (isset($value) && $value !== '')
-				{
-					$key = rtrim($key);
-					$old_options[$key] = trim($value);
-				}
-			}
-		}
-
-		$config_dir = $conf['mailman']['config_dir'].'/';
-		$full_file_name = $config_dir.'virtual_to_transport.sh';
-
-		//* Backup exiting virtual_to_transport.sh script
-		if(is_file($full_file_name)) {
-			copy($full_file_name, $config_dir.'virtual_to_transport.sh~');
-		}
-
-		if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh')) {
-			copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh', $full_file_name);
-		} else {
-			copy('tpl/mailman-virtual_to_transport.sh', $full_file_name);
-		}
-		chgrp($full_file_name, 'mailman');
-		chmod($full_file_name, 0750);
-
-		if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
-		exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
-
-		exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
-
-		$virtual_domains = '';
-		if($status == 'update')
-		{
-			// create virtual_domains list
-			$domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain");
-
-			if(is_array($domainAll)) {
-				foreach($domainAll as $domain)
-				{
-					if ($domainAll[0]['domain'] == $domain['domain'])
-						$virtual_domains .= "'".$domain['domain']."'";
-					else
-						$virtual_domains .= ", '".$domain['domain']."'";
-				}
-			}
-		}
-		else
-			$virtual_domains = "' '";
-
-		$content = str_replace('{hostname}', $conf['hostname'], $content);
-		if(!isset($old_options['DEFAULT_SERVER_LANGUAGE'])) $old_options['DEFAULT_SERVER_LANGUAGE'] = '';
-		$content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content);
-		$content = str_replace('{virtual_domains}', $virtual_domains, $content);
-
-		wf($full_file_name, $content);
-	}
-
-	public function configure_amavis() {
-		global $conf;
-
-		// amavisd user config file
-		$configfile = 'fedora_amavisd_conf';
-		if(!is_dir($conf["amavis"]["config_dir"])) mkdir($conf["amavis"]["config_dir"]);
-		if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf')) copy($conf["amavis"]["config_dir"].'/amavisd.conf', $conf["amavis"]["config_dir"].'/amavisd.conf~');
-		if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/amavisd.conf~');
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master");
-		$content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
-		$content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
-		$content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
-		$content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content);
-		$content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content);
-		$content = str_replace('{hostname}', $conf['hostname'], $content);
-		$content = str_replace('/var/spool/amavisd/clamd.sock', '/tmp/clamd.socket', $content);
-		wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content);
-		chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
-
-
-		// Adding the amavisd commands to the postfix configuration
-		$postconf_commands = array (
-			'content_filter = amavis:[127.0.0.1]:10024',
-			'receive_override_options = no_address_mappings'
-		);
-
-		// Make a backup copy of the main.cf file
-		copy($conf["postfix"]["config_dir"].'/main.cf', $conf["postfix"]["config_dir"].'/main.cf~2');
-
-		// Executing the postconf commands
-		foreach($postconf_commands as $cmd) {
-			$command = "postconf -e '$cmd'";
-			caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
-		}
-
-		// Append the configuration for amavisd to the master.cf file
-		if(is_file($conf['postfix']['config_dir'].'/master.cf')) copy($conf['postfix']['config_dir'].'/master.cf', $conf['postfix']['config_dir'].'/master.cf~');
-		$content = rf($conf['postfix']['config_dir'].'/master.cf');
-		// Only add the content if we had not addded it before
-		if(!preg_match('/^amavis\s+unix\s+/m', $content)) {
-			unset($content);
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master');
-			af($conf['postfix']['config_dir'].'/master.cf', $content);
-			$content = rf($conf['postfix']['config_dir'].'/master.cf');
-		}
-		if(!preg_match('/^127.0.0.1:10025\s+/m', $content)) {
-			unset($content);
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master');
-			af($conf['postfix']['config_dir'].'/master.cf', $content);
-			$content = rf($conf['postfix']['config_dir'].'/master.cf');
-		}
-		if(!preg_match('/^127.0.0.1:10027\s+/m', $content)) {
-			unset($content);
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master');
-			af($conf['postfix']['config_dir'].'/master.cf', $content);
-		}
-		unset($content);
-
-		removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn   # REMOVE ME', 1);
-		replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1);
-
-
-	}
-
-
+	// everything else is inherited from installer_centos class
 }
 
 ?>
diff --git a/install/dist/lib/centos53.lib.php b/install/dist/lib/centos53.lib.php
index 81156da..b7f45bc 100644
--- a/install/dist/lib/centos53.lib.php
+++ b/install/dist/lib/centos53.lib.php
@@ -28,150 +28,13 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-class installer extends installer_dist {
+require_once realpath(dirname(__FILE__)) . '/centos_base.lib.php';
 
-	public function configure_mailman($status = 'insert') {
-		global $conf;
+class installer extends installer_centos {
 
-		$config_dir = $conf['mailman']['config_dir'].'/';
-		$full_file_name = $config_dir.'mm_cfg.py';
-		//* Backup exiting file
-		if(is_file($full_file_name)) {
-			copy($full_file_name, $config_dir.'mm_cfg.py~');
-		}
+	protected $clamav_socket = '/var/run/clamav/clamd.sock';
 
-		// load files
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mm_cfg.py.master', 'tpl/mm_cfg.py.master');
-		$old_file = rf($full_file_name);
-
-		$old_options = array();
-		$lines = explode("\n", $old_file);
-		foreach ($lines as $line)
-		{
-			if (trim($line) != '' && substr($line, 0, 1) != '#')
-			{
-				@list($key, $value) = @explode("=", $line);
-				if (isset($value) && $value !== '')
-				{
-					$key = rtrim($key);
-					$old_options[$key] = trim($value);
-				}
-			}
-		}
-
-		$config_dir = $conf['mailman']['config_dir'].'/';
-		$full_file_name = $config_dir.'virtual_to_transport.sh';
-
-		//* Backup exiting virtual_to_transport.sh script
-		if(is_file($full_file_name)) {
-			copy($full_file_name, $config_dir.'virtual_to_transport.sh~');
-		}
-
-		if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh')) {
-			copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh', $full_file_name);
-		} else {
-			copy('tpl/mailman-virtual_to_transport.sh', $full_file_name);
-		}
-		chgrp($full_file_name, 'mailman');
-		chmod($full_file_name, 0750);
-
-		if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
-		exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
-
-		exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
-
-		$virtual_domains = '';
-		if($status == 'update')
-		{
-			// create virtual_domains list
-			$domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain");
-
-			if(is_array($domainAll)) {
-				foreach($domainAll as $domain)
-				{
-					if ($domainAll[0]['domain'] == $domain['domain'])
-						$virtual_domains .= "'".$domain['domain']."'";
-					else
-						$virtual_domains .= ", '".$domain['domain']."'";
-				}
-			}
-		}
-		else
-			$virtual_domains = "' '";
-
-		$content = str_replace('{hostname}', $conf['hostname'], $content);
-		if(!isset($old_options['DEFAULT_SERVER_LANGUAGE'])) $old_options['DEFAULT_SERVER_LANGUAGE'] = '';
-		$content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content);
-		$content = str_replace('{virtual_domains}', $virtual_domains, $content);
-
-		wf($full_file_name, $content);
-	}
-
-	public function configure_amavis() {
-		global $conf;
-
-		// amavisd user config file
-		$configfile = 'fedora_amavisd_conf';
-		if(!is_dir($conf["amavis"]["config_dir"])) mkdir($conf["amavis"]["config_dir"]);
-		if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf')) copy($conf["amavis"]["config_dir"].'/amavisd.conf', $conf["amavis"]["config_dir"].'/amavisd.conf~');
-		if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/amavisd.conf~');
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master");
-		$content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
-		$content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
-		$content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
-		$content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content);
-		$content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content);
-		$content = str_replace('{hostname}', $conf['hostname'], $content);
-		$content = str_replace('/var/spool/amavisd/clamd.sock', '/var/run/clamav/clamd.sock', $content);
-		wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content);
-		chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
-
-
-		// Adding the amavisd commands to the postfix configuration
-		$postconf_commands = array (
-			'content_filter = amavis:[127.0.0.1]:10024',
-			'receive_override_options = no_address_mappings'
-		);
-
-		// Make a backup copy of the main.cf file
-		copy($conf["postfix"]["config_dir"].'/main.cf', $conf["postfix"]["config_dir"].'/main.cf~2');
-
-		// Executing the postconf commands
-		foreach($postconf_commands as $cmd) {
-			$command = "postconf -e '$cmd'";
-			caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
-		}
-
-		// Append the configuration for amavisd to the master.cf file
-		if(is_file($conf['postfix']['config_dir'].'/master.cf')) copy($conf['postfix']['config_dir'].'/master.cf', $conf['postfix']['config_dir'].'/master.cf~');
-		$content = rf($conf['postfix']['config_dir'].'/master.cf');
-		// Only add the content if we had not addded it before
-		if(!preg_match('/^amavis\s+unix\s+/m', $content)) {
-			unset($content);
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master');
-			af($conf['postfix']['config_dir'].'/master.cf', $content);
-			$content = rf($conf['postfix']['config_dir'].'/master.cf');
-		}
-		if(!preg_match('/^127.0.0.1:10025\s+/m', $content)) {
-			unset($content);
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master');
-			af($conf['postfix']['config_dir'].'/master.cf', $content);
-			$content = rf($conf['postfix']['config_dir'].'/master.cf');
-		}
-		if(!preg_match('/^127.0.0.1:10027\s+/m', $content)) {
-			unset($content);
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master');
-			af($conf['postfix']['config_dir'].'/master.cf', $content);
-		}
-		unset($content);
-
-		removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn   # REMOVE ME', 1);
-		replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1);
-
-
-	}
-
-
+	// everything else is inherited from installer_centos class
 }
 
 ?>
diff --git a/install/dist/lib/centos70.lib.php b/install/dist/lib/centos70.lib.php
index 54542dd..a67124e 100644
--- a/install/dist/lib/centos70.lib.php
+++ b/install/dist/lib/centos70.lib.php
@@ -28,138 +28,13 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-class installer extends installer_dist {
+require_once realpath(dirname(__FILE__)) . '/centos_base.lib.php';
 
-	public function configure_mailman($status = 'insert') {
-		global $conf;
+class installer extends installer_centos {
 
-		$config_dir = $conf['mailman']['config_dir'].'/';
-		$full_file_name = $config_dir.'mm_cfg.py';
-		//* Backup exiting file
-		if(is_file($full_file_name)) {
-			copy($full_file_name, $config_dir.'mm_cfg.py~');
-		}
-
-		// load files
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mm_cfg.py.master', 'tpl/mm_cfg.py.master');
-		$old_file = rf($full_file_name);
-
-		$old_options = array();
-		$lines = explode("\n", $old_file);
-		foreach ($lines as $line)
-		{
-			if (trim($line) != '' && substr($line, 0, 1) != '#')
-			{
-				@list($key, $value) = @explode("=", $line);
-				if (isset($value) && $value !== '')
-				{
-					$key = rtrim($key);
-					$old_options[$key] = trim($value);
-				}
-			}
-		}
-
-		$config_dir = $conf['mailman']['config_dir'].'/';
-		$full_file_name = $config_dir.'virtual_to_transport.sh';
-
-		//* Backup exiting virtual_to_transport.sh script
-		if(is_file($full_file_name)) {
-			copy($full_file_name, $config_dir.'virtual_to_transport.sh~');
-		}
-
-		if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh')) {
-			copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh', $full_file_name);
-		} else {
-			copy('tpl/mailman-virtual_to_transport.sh', $full_file_name);
-		}
-		chgrp($full_file_name, 'mailman');
-		chmod($full_file_name, 0750);
-
-		if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
-		exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
-
-		exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
-
-		$virtual_domains = '';
-		if($status == 'update')
-		{
-			// create virtual_domains list
-			$domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain");
-
-			if(is_array($domainAll)) {
-				foreach($domainAll as $domain)
-				{
-					if ($domainAll[0]['domain'] == $domain['domain'])
-						$virtual_domains .= "'".$domain['domain']."'";
-					else
-						$virtual_domains .= ", '".$domain['domain']."'";
-				}
-			}
-		}
-		else
-			$virtual_domains = "' '";
-
-		$content = str_replace('{hostname}', $conf['hostname'], $content);
-		if(!isset($old_options['DEFAULT_SERVER_LANGUAGE'])) $old_options['DEFAULT_SERVER_LANGUAGE'] = '';
-		$content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content);
-		$content = str_replace('{virtual_domains}', $virtual_domains, $content);
-
-		wf($full_file_name, $content);
-	}
-
-	public function configure_amavis() {
-		global $conf;
-
-		// amavisd user config file
-		$configfile = 'fedora_amavisd_conf';
-		if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf')) copy($conf["amavis"]["config_dir"].'/amavisd.conf', $conf["amavis"]["config_dir"].'/amavisd.conf~');
-		if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/amavisd.conf~');
-		if(!is_dir($conf["amavis"]["config_dir"])) mkdir($conf["amavis"]["config_dir"]);
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master");
-		$content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
-		$content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
-		$content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
-		$content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content);
-		$content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content);
-		$content = str_replace('{hostname}', $conf['hostname'], $content);
-		$content = str_replace('/var/spool/amavisd/clamd.sock', '/var/run/clamav/clamd.sock', $content);
-		wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content);
-		chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
-
-
-		// Adding the amavisd commands to the postfix configuration
-		$postconf_commands = array (
-			'content_filter = amavis:[127.0.0.1]:10024',
-			'receive_override_options = no_address_mappings'
-		);
-
-		// Make a backup copy of the main.cf file
-		copy($conf["postfix"]["config_dir"].'/main.cf', $conf["postfix"]["config_dir"].'/main.cf~2');
-
-		// Executing the postconf commands
-		foreach($postconf_commands as $cmd) {
-			$command = "postconf -e '$cmd'";
-			caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
-		}
-
-		// Append the configuration for amavisd to the master.cf file
-		if(is_file($conf["postfix"]["config_dir"].'/master.cf')) copy($conf["postfix"]["config_dir"].'/master.cf', $conf["postfix"]["config_dir"].'/master.cf~');
-		$content = rf($conf["postfix"]["config_dir"].'/master.cf');
-		// Only add the content if we had not addded it before
-		if(!stristr($content, "127.0.0.1:10025")) {
-			unset($content);
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', "tpl/master_cf_amavis.master");
-			af($conf["postfix"]["config_dir"].'/master.cf', $content);
-		}
-		unset($content);
-
-		removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn   # REMOVE ME', 1);
-		replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1);
-
-
-	}
-
-
+	protected $clamav_socket = '/var/run/clamav/clamd.sock';
+	
+	// everything else is inherited from installer_centos class
 }
 
 ?>
diff --git a/install/dist/lib/centos_base.lib.php b/install/dist/lib/centos_base.lib.php
new file mode 100644
index 0000000..4dbb2d6
--- /dev/null
+++ b/install/dist/lib/centos_base.lib.php
@@ -0,0 +1,102 @@
+<?php
+
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+class installer_centos extends installer_dist {
+	
+	protected $clamav_socket = '/tmp/clamd.socket';
+	
+	public function configure_amavis() {
+		global $conf;
+
+		// amavisd user config file
+		$configfile = 'fedora_amavisd_conf';
+		if(!is_dir($conf["amavis"]["config_dir"])) mkdir($conf["amavis"]["config_dir"]);
+		if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf')) copy($conf["amavis"]["config_dir"].'/amavisd.conf', $conf["amavis"]["config_dir"].'/amavisd.conf~');
+		if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/amavisd.conf~');
+		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master");
+		$content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
+		$content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
+		$content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
+		$content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content);
+		$content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content);
+		$content = str_replace('{hostname}', $conf['hostname'], $content);
+		$content = str_replace('/var/spool/amavisd/clamd.sock', $this->clamav_socket, $content);
+		wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content);
+		chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
+
+
+		// Adding the amavisd commands to the postfix configuration
+		$postconf_commands = array (
+			'content_filter = amavis:[127.0.0.1]:10024',
+			'receive_override_options = no_address_mappings'
+		);
+
+		// Make a backup copy of the main.cf file
+		copy($conf["postfix"]["config_dir"].'/main.cf', $conf["postfix"]["config_dir"].'/main.cf~2');
+
+		// Executing the postconf commands
+		foreach($postconf_commands as $cmd) {
+			$command = "postconf -e '$cmd'";
+			caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+		}
+
+		// Append the configuration for amavisd to the master.cf file
+		if(is_file($conf['postfix']['config_dir'].'/master.cf')) copy($conf['postfix']['config_dir'].'/master.cf', $conf['postfix']['config_dir'].'/master.cf~');
+		$content = rf($conf['postfix']['config_dir'].'/master.cf');
+		// Only add the content if we had not addded it before
+		if(!preg_match('/^amavis\s+unix\s+/m', $content)) {
+			unset($content);
+			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master');
+			af($conf['postfix']['config_dir'].'/master.cf', $content);
+			$content = rf($conf['postfix']['config_dir'].'/master.cf');
+		}
+		if(!preg_match('/^127.0.0.1:10025\s+/m', $content)) {
+			unset($content);
+			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master');
+			af($conf['postfix']['config_dir'].'/master.cf', $content);
+			$content = rf($conf['postfix']['config_dir'].'/master.cf');
+		}
+		if(!preg_match('/^127.0.0.1:10027\s+/m', $content)) {
+			unset($content);
+			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master');
+			af($conf['postfix']['config_dir'].'/master.cf', $content);
+		}
+		unset($content);
+
+		removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn   # REMOVE ME', 1);
+		replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1);
+
+
+	}
+
+
+}
+
+?>
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index 658af9b..5420925 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -29,87 +29,22 @@
 */
 
 class installer_dist extends installer_base {
-
-	public function configure_mailman($status = 'insert') {
-		global $conf;
-
-		$config_dir = $conf['mailman']['config_dir'].'/';
-		$full_file_name = $config_dir.'mm_cfg.py';
-		//* Backup exiting file
-		if(is_file($full_file_name)) {
-			copy($full_file_name, $config_dir.'mm_cfg.py~');
+	protected $mailman_group = 'mailman';
+	
+	public function __construct() {
+		//** check apache modules */
+		$mods = getapachemodules();
+		if(in_array('authz_compat', $mods, true)) {
+			swriteln($inst->lng('    WARNING! You are using mod_authz_compat.'));
+			swriteln($inst->lng('    Please make sure that your apache config uses the new auth syntax:'));
+			swriteln($inst->lng('    <Directory />'));
+			swriteln($inst->lng('    Options None'));
+			swriteln($inst->lng('    AllowOverride None'));
+			swriteln($inst->lng('    Require all denied'));
+			swriteln($inst->lng('    </Directory>'."\n"));
+			
+			swriteln($inst->lng('    If it uses the old syntax (deny from all) ISPConfig would fail to work.'));
 		}
-
-		// load files
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mm_cfg.py.master', 'tpl/mm_cfg.py.master');
-		$old_file = rf($full_file_name);
-
-		$old_options = array();
-		$lines = explode("\n", $old_file);
-		foreach ($lines as $line)
-		{
-			if (trim($line) != '' && substr($line, 0, 1) != '#')
-			{
-				@list($key, $value) = @explode("=", $line);
-				if (isset($value) && $value !== '')
-				{
-					$key = rtrim($key);
-					$old_options[$key] = trim($value);
-				}
-			}
-		}
-
-		if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
-		exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
-
-		$virtual_domains = '';
-		if($status == 'update')
-		{
-			// create virtual_domains list
-			$domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain");
-
-			if(is_array($domainAll)) {
-				foreach($domainAll as $domain)
-				{
-					if ($domainAll[0]['domain'] == $domain['domain'])
-						$virtual_domains .= "'".$domain['domain']."'";
-					else
-						$virtual_domains .= ", '".$domain['domain']."'";
-				}
-			}
-		}
-		else
-			$virtual_domains = "' '";
-
-		$content = str_replace('{hostname}', $conf['hostname'], $content);
-		if(!isset($old_options['DEFAULT_SERVER_LANGUAGE'])) $old_options['DEFAULT_SERVER_LANGUAGE'] = '';
-		$content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content);
-		$content = str_replace('{virtual_domains}', $virtual_domains, $content);
-
-		wf($full_file_name, $content);
-
-		//* Write virtual_to_transport.sh script
-		$config_dir = $conf['mailman']['config_dir'].'/';
-		$full_file_name = $config_dir.'virtual_to_transport.sh';
-
-		//* Backup exiting virtual_to_transport.sh script
-		if(is_file($full_file_name)) {
-			copy($full_file_name, $config_dir.'virtual_to_transport.sh~');
-		}
-
-		if(is_dir('/etc/mailman')) {
-			if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh')) {
-				copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh', $full_file_name);
-			} else {
-				copy('tpl/mailman-virtual_to_transport.sh', $full_file_name);
-			}
-			chgrp($full_file_name, 'mailman');
-			chmod($full_file_name, 0750);
-		}
-
-		//* Create aliasaes
-		exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
-
 	}
 
 	function configure_postfix($options = '')
@@ -358,9 +293,6 @@
 		wf("$pam/smtp", $content);
 		// On some OSes smtp is world readable which allows for reading database information.  Removing world readable rights should have no effect.
 		if(is_file("$pam/smtp"))    exec("chmod o= $pam/smtp");
-		//exec("chmod 660 $pam/smtp");
-		//exec("chown root:root $pam/smtp");
-
 	}
 
 	public function configure_courier()
@@ -655,7 +587,7 @@
 		$content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
 		$content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
 		$content = str_replace('{mysql_server_host}', $conf["mysql"]["host"], $content);
-		$content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content);
+		$content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content);
 		$content = str_replace('{server_id}', $conf["server_id"], $content);
 		wf($conf["mydns"]["config_dir"].'/'.$configfile, $content);
 		exec('chmod 600 '.$conf["mydns"]["config_dir"].'/'.$configfile);
@@ -867,7 +799,6 @@
 
 	}
 
-
 	public function install_ispconfig()
 	{
 		global $conf;
@@ -985,7 +916,6 @@
 			$content = '<?php' . "\n" . '$maxid_remote_action = 0;' . "\n" . '?>';
 			wf($install_dir.'/server/lib/remote_action.inc.php', $content);
 		}
-
 
 		//* Enable the server modules and plugins.
 		// TODO: Implement a selector which modules and plugins shall be enabled.
@@ -1143,11 +1073,6 @@
 		if($conf['nginx']['installed'] == true){
 			$command = 'usermod -a -G ispconfig '.$conf['nginx']['user'];
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
-			//if(is_user('ispapps')){
-			// Allow the ispapps vhost access to /etc/squirrelmail
-			//$command = 'usermod -a -G '.$conf['apache']['group'].' ispapps';
-			//caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
-			//}
 			if(is_group('ispapps')){
 				$command = 'usermod -a -G ispapps '.$conf['nginx']['user'];
 				caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index ec278b9..59124a5 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -29,6 +29,7 @@
 */
 
 class installer_dist extends installer_base {
+	protected $mailman_group = 'mailman';
 	
 	public function __construct() {
 		//** check apache modules */
@@ -44,88 +45,6 @@
 			
 			swriteln($inst->lng('    If it uses the old syntax (deny from all) ISPConfig would fail to work.'));
 		}
-	}
-	
-	public function configure_mailman($status = 'insert') {
-		global $conf;
-
-		$config_dir = $conf['mailman']['config_dir'].'/';
-		$full_file_name = $config_dir.'mm_cfg.py';
-		//* Backup exiting file
-		if(is_file($full_file_name)) {
-			copy($full_file_name, $config_dir.'mm_cfg.py~');
-		}
-
-		// load files
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mm_cfg.py.master', 'tpl/mm_cfg.py.master');
-		$old_file = rf($full_file_name);
-
-		$old_options = array();
-		$lines = explode("\n", $old_file);
-		foreach ($lines as $line)
-		{
-			if (trim($line) != '' && substr($line, 0, 1) != '#')
-			{
-				@list($key, $value) = @explode("=", $line);
-				if (isset($value) && $value !== '')
-				{
-					$key = rtrim($key);
-					$old_options[$key] = trim($value);
-				}
-			}
-		}
-
-		if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
-		exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
-
-		$virtual_domains = '';
-		if($status == 'update')
-		{
-			// create virtual_domains list
-			$domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain");
-
-			if(is_array($domainAll)) {
-				foreach($domainAll as $domain)
-				{
-					if ($domainAll[0]['domain'] == $domain['domain'])
-						$virtual_domains .= "'".$domain['domain']."'";
-					else
-						$virtual_domains .= ", '".$domain['domain']."'";
-				}
-			}
-		}
-		else
-			$virtual_domains = "' '";
-
-		$content = str_replace('{hostname}', $conf['hostname'], $content);
-		if(!isset($old_options['DEFAULT_SERVER_LANGUAGE'])) $old_options['DEFAULT_SERVER_LANGUAGE'] = '';
-		$content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content);
-		$content = str_replace('{virtual_domains}', $virtual_domains, $content);
-
-		wf($full_file_name, $content);
-
-		//* Write virtual_to_transport.sh script
-		$config_dir = $conf['mailman']['config_dir'].'/';
-		$full_file_name = $config_dir.'virtual_to_transport.sh';
-
-		//* Backup exiting virtual_to_transport.sh script
-		if(is_file($full_file_name)) {
-			copy($full_file_name, $config_dir.'virtual_to_transport.sh~');
-		}
-
-		if(is_dir('/etc/mailman')) {
-			if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh')) {
-				copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh', $full_file_name);
-			} else {
-				copy('tpl/mailman-virtual_to_transport.sh', $full_file_name);
-			}
-			chgrp($full_file_name, 'mailman');
-			chmod($full_file_name, 0750);
-		}
-
-		//* Create aliasaes
-		exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
-		if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman');
 	}
 
 	function configure_postfix($options = '')
@@ -354,35 +273,6 @@
 	public function configure_saslauthd() {
 		global $conf;
 
-		/*
-		$configfile = 'sasl_smtpd.conf';
-		if(is_file('/etc/sasl2/smtpd.conf')) copy('/etc/sasl2/smtpd.conf','/etc/sasl2/smtpd.conf~');
-		if(is_file('/etc/sasl2/smtpd.conf~')) exec('chmod 400 '.'/etc/sasl2/smtpd.conf~');
-		$content = rf("tpl/".$configfile.".master");
-		$content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
-		$content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
-		$content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content);
-		$content = str_replace('{mysql_server_ip}',$conf['mysql']['ip'],$content);
-		wf('/etc/sasl2/smtpd.conf',$content);
-		*/
-
-		// TODO: Chmod and chown on the config file
-
-
-		/*
-		// Create the spool directory
-		exec('mkdir -p /var/spool/postfix/var/run/saslauthd');
-
-		// Edit the file /etc/default/saslauthd
-		$configfile = $conf["saslauthd"]["config"];
-		if(is_file($configfile)) copy($configfile,$configfile.'~');
-		if(is_file($configfile.'~')) exec('chmod 400 '.$configfile.'~');
-		$content = rf($configfile);
-		$content = str_replace('START=no','START=yes',$content);
-		$content = str_replace('OPTIONS="-c"','OPTIONS="-m /var/spool/postfix/var/run/saslauthd -r"',$content);
-		wf($configfile,$content);
-		*/
-
 		// Edit the file /etc/init.d/saslauthd
 		$configfile = $conf["init_scripts"].'/'.$conf["saslauthd"]["init_script"];
 		$content = rf($configfile);
@@ -391,8 +281,6 @@
 
 
 		if(is_file($configfile)) wf($configfile, $content);
-
-
 
 	}
 
@@ -413,9 +301,6 @@
 		wf("$pam/smtp", $content);
 		// On some OSes smtp is world readable which allows for reading database information.  Removing world readable rights should have no effect.
 		if(is_file("$pam/smtp"))    exec("chmod o= $pam/smtp");
-		//exec("chmod 660 $pam/smtp");
-		//exec("chown root:root $pam/smtp");
-
 	}
 
 	public function configure_courier()
@@ -571,6 +456,7 @@
 		$content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
 		$content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content);
 		$content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content);
+		$content = str_replace('{hostname}', $conf['hostname'], $content);
 		wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content);
 		chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
 
@@ -693,7 +579,7 @@
 	{
 		global $conf;
 
-		// configure pam for SMTP authentication agains the ispconfig database
+		// configure mydns
 		$configfile = 'mydns.conf';
 		if(is_file($conf["mydns"]["config_dir"].'/'.$configfile)) copy($conf["mydns"]["config_dir"].'/'.$configfile, $conf["mydns"]["config_dir"].'/'.$configfile.'~');
 		if(is_file($conf["mydns"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["mydns"]["config_dir"].'/'.$configfile.'~');
@@ -772,7 +658,7 @@
 		}
 		
 		if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses);
-		
+
 		wf($vhost_conf_dir.'/ispconfig.conf', $tpl->grab());
 		unset($tpl);
 
@@ -908,7 +794,6 @@
 			$tcp_public_services = '21 22 25 53 80 110 443 3306 8080 10000';
 			$udp_public_services = '53';
 		}
-
 		if(!stristr($tcp_public_services, $conf['apache']['vhost_port'])) {
 			$tcp_public_services .= ' '.intval($conf['apache']['vhost_port']);
 			if($row["tcp_port"] != '') $this->db->query("UPDATE firewall SET tcp_port = tcp_port + ? WHERE server_id = ?", ',' . intval($conf['apache']['vhost_port']), $conf['server_id']);
@@ -1206,21 +1091,17 @@
 		// and must be fixed as this will allow the apache user to read the ispconfig files.
 		// Later this must run as own apache server or via suexec!
 		if($conf['apache']['installed'] == true){
-			//$command = 'groupmod --add-user '.$conf['apache']['user'].' ispconfig';
 			$command = 'usermod -a -G ispconfig '.$conf['apache']['user'];
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 			if(is_group('ispapps')){
-				//$command = 'groupmod --add-user '.$conf['apache']['user'].' ispapps';
 				$command = 'usermod -a -G ispapps '.$conf['apache']['user'];
 				caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 			}
 		}
 		if($conf['nginx']['installed'] == true){
-			//$command = 'groupmod --add-user '.$conf['nginx']['user'].' ispconfig';
-			 $command = 'usermod -a -G ispconfig '.$conf['nginx']['user'];
+			$command = 'usermod -a -G ispconfig '.$conf['nginx']['user'];
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 			if(is_group('ispapps')){
-				//$command = 'groupmod --add-user '.$conf['nginx']['user'].' ispapps';
 				$command = 'usermod -a -G ispapps '.$conf['nginx']['user'];
 				caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 			}
@@ -1232,7 +1113,6 @@
 		//* Make the shell scripts executable
 		$command = "chmod +x $install_dir/server/scripts/*.sh";
 		caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
-
 
 		if($conf['apache']['installed'] == true && $this->install_ispconfig_interface == true){
 			//* Copy the ISPConfig vhost for the controlpanel
@@ -1350,7 +1230,6 @@
 			if(!@file_exists('/usr/share/squirrelmail') && @is_dir('/srv/www/htdocs/squirrelmail')) symlink('/srv/www/htdocs/squirrelmail/', '/usr/share/squirrelmail');
 		}
 
-
 		// Make the Clamav log files readable by ISPConfig
 		//exec('chmod +r /var/log/clamav/clamav.log');
 		//exec('chmod +r /var/log/clamav/freshclam.log');
@@ -1414,7 +1293,6 @@
 		if(is_file($conf['amavis']['config_dir'].'/amavisd.conf')) chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
 		if(is_file($conf['amavis']['config_dir'].'/amavisd.conf~')) chmod($conf['amavis']['config_dir'].'/amavisd.conf~', 0400);
 	}
-
 }
 
 ?>
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 12fc8a0..edeb215 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -36,6 +36,7 @@
 	public $conf;
 	public $install_ispconfig_interface = true;
 	public $is_update = false; // true if it is an update, falsi if it is a new install
+	protected $mailman_group = 'list';
 
 
 	public function __construct() {
@@ -665,14 +666,15 @@
 			} else {
 				copy('tpl/mailman-virtual_to_transport.sh', $full_file_name);
 			}
-			chgrp($full_file_name, 'list');
+			chgrp($full_file_name, $this->mailman_group);
 			chmod($full_file_name, 0755);
 		}
 
 		//* Create aliasaes
 		exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
-		if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman');
 
+		if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
+		exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
 	}
 
 	public function configure_postfix($options = '') {

--
Gitblit v1.9.1