From c1fcaed2ee8f05a5030fe4e8e211ca4eae7a9489 Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Tue, 11 Jun 2013 11:44:57 -0400
Subject: [PATCH] - Fixed FS#2921 - RBL list field in server config can not be empty.

---
 install/dist/lib/fedora.lib.php |   55 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 35 insertions(+), 20 deletions(-)

diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index 1020d32..aa83141 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -59,22 +59,8 @@
 			}
 		}
 		
-		$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~');
-		}
-		
-		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')
@@ -101,6 +87,25 @@
 		$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')) {
+			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 = '')
@@ -204,6 +209,16 @@
 		touch($config_dir.'/nested_header_checks');
 		touch($config_dir.'/body_checks');
 		
+		//* Create the mailman files
+		if(!is_dir('/var/lib/mailman/data')) exec('mkdir -p /var/lib/mailman/data');
+		//if(!is_file('/var/lib/mailman/data/aliases')) touch('/var/lib/mailman/data/aliases');
+		if(is_file('/var/lib/mailman/data/aliases')) unlink('/var/lib/mailman/data/aliases');
+		if(!is_link('/var/lib/mailman/data/aliases')) symlink('/etc/mailman/aliases','/var/lib/mailman/data/aliases');
+		exec('postalias /var/lib/mailman/data/aliases');
+		if(!is_file('/var/lib/mailman/data/virtual-mailman')) touch('/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');
 		
 		//* Make a backup copy of the main.cf file
 		copy($config_dir.'/main.cf', $config_dir.'/main.cf~');
@@ -1024,7 +1039,7 @@
 		
 			//copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost");
 			//* and create the symlink
-			if($this->is_update == false) {
+			//if($this->is_update == false) {
 				if(@is_link("$vhost_conf_enabled_dir/ispconfig.vhost")) unlink("$vhost_conf_enabled_dir/ispconfig.vhost");
 				if(!@is_link("$vhost_conf_enabled_dir/000-ispconfig.vhost")) {
 					exec("ln -s $vhost_conf_dir/ispconfig.vhost $vhost_conf_enabled_dir/000-ispconfig.vhost");
@@ -1043,13 +1058,13 @@
 					$content = rf('tpl/apache_ispconfig_fcgi_starter.master');
 					$content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content);
 					$content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content);
-					exec('mkdir -p /var/www/php-fcgi-scripts/ispconfig');
+					if(!is_dir('/var/www/php-fcgi-scripts/ispconfig')) exec('mkdir -p /var/www/php-fcgi-scripts/ispconfig');
 					wf('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', $content);
 					exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter');
-					exec('ln -s /usr/local/ispconfig/interface/web /var/www/ispconfig');
+					if(!is_link('/var/www/ispconfig')) exec('ln -s /usr/local/ispconfig/interface/web /var/www/ispconfig');
 					exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig');
 				//}
-			}
+			//}
 		}
 		
 		if($conf['nginx']['installed'] == true && $this->install_ispconfig_interface == true){
@@ -1228,7 +1243,7 @@
 			$existing_cron_jobs = file('crontab.txt');
 		
 			$cron_jobs = array(
-                '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> /var/log/ispconfig/cron.log'
+                '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> /dev/null'
             );
 		
 			// remove existing ispconfig cronjobs, in case the syntax has changed
@@ -1247,7 +1262,7 @@
 		}
 		
 		exec('touch /var/log/ispconfig/cron.log');
-		exec('chmod 666 /var/log/ispconfig/cron.log');
+		exec('chmod 660 /var/log/ispconfig/cron.log');
 	}
 
 }

--
Gitblit v1.9.1