From f28f40f7a62b9a6fe939c05b10366b0d66c9ec1e Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 27 Feb 2009 12:50:34 -0500
Subject: [PATCH] Fixed amavisd socket path.

---
 install/update.php |  187 +++++++++++++++++++++++++++++++---------------
 1 files changed, 125 insertions(+), 62 deletions(-)

diff --git a/install/update.php b/install/update.php
index 5a589d2..496f16f 100644
--- a/install/update.php
+++ b/install/update.php
@@ -89,18 +89,22 @@
 $conf["mysql"]["ispconfig_user"] = $conf_old["db_user"];
 $conf["mysql"]["ispconfig_password"] = $conf_old["db_password"];
 
-$conf["mysql"]["master_host"] = $conf_old["dbmaster_host"];
-$conf["mysql"]["master_database"] = $conf_old["dbmaster_database"];
-$conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"];
-$conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"];
+if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"];
+if(isset($conf_old["dbmaster_database"])) $conf["mysql"]["master_database"] = $conf_old["dbmaster_database"];
+if(isset($conf_old["dbmaster_user"])) $conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"];
+if(isset($conf_old["dbmaster_password"])) $conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"];
 
 // Resolve the IP address of the mysql hostname.
 if(!$conf['mysql']['ip'] = gethostbyname($conf['mysql']['host'])) die('Unable to resolve hostname'.$conf['mysql']['host']);
 
-$conf['server_id'] = $conf_old["server_id"];
+$conf['server_id'] = intval($conf_old["server_id"]);
 $conf['ispconfig_log_priority'] = $conf_old["log_priority"];
 
 $inst = new installer();
+$inst->is_update = true;
+
+//** Detect the installed applications
+$inst->find_installed_apps();
 
 echo "This application will update ISPConfig 3 on your server.\n";
 
@@ -125,9 +129,23 @@
 	system("mysqldump -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." -c -t --add-drop-table --all --quick ".$conf['mysql']['database']." > existing_db.sql");
 }
 
-//** Delete the old database
+
+//* initialize the database
 $inst->db = new db();
 
+//* Update $conf array with values from the server.ini that shall be preserved
+$tmp = $inst->db->queryOneRecord("SELECT * FROM ".$conf["mysql"]["database"].".server WHERE server_id = ".$conf['server_id']);
+$ini_array = ini_to_array(stripslashes($tmp['config']));
+
+$conf['services']['mail'] = ($tmp['mail_server'] == 1)?true:false;
+$conf['services']['web'] = ($tmp['web_server'] == 1)?true:false;
+$conf['services']['dns'] = ($tmp['dns_server'] == 1)?true:false;
+$conf['services']['file'] = ($tmp['file_server'] == 1)?true:false;
+$conf['services']['db'] = ($tmp['db_server'] == 1)?true:false;
+$conf['services']['vserver'] = ($tmp['vserver_server'] == 1)?true:false;
+$conf['postfix']['vmail_mailbox_base'] = $ini_array['mail']['homedir_path'];
+
+//** Delete the old database
 if( !$inst->db->query('DROP DATABASE IF EXISTS '.$conf['mysql']['database']) ) {
 
 	$inst->error('Unable to drop MySQL database: '.$conf['mysql']['database'].'.');
@@ -182,61 +200,100 @@
 unset($new_ini);
 
 
+//** Update system ini
+$tmp_server_rec = $inst->db->queryOneRecord("SELECT config FROM sys_ini WHERE sysini_id = 1");
+$old_ini_array = ini_to_array(stripslashes($tmp_server_rec['config']));
+unset($tmp_server_rec);
+$tpl_ini_array = ini_to_array(rf('tpl/system.ini.master'));
+
+// update the new template with the old values
+if(is_array($old_ini_array)) {
+	foreach($old_ini_array as $tmp_section_name => $tmp_section_content) {
+		foreach($tmp_section_content as $tmp_var_name => $tmp_var_content) {
+			$tpl_ini_array[$tmp_section_name][$tmp_var_name] = $tmp_var_content;
+		}
+	}
+}
+
+$new_ini = array_to_ini($tpl_ini_array);
+$tmp = $inst->db->queryOneRecord('SELECT count(sysini_id) as number FROM sys_ini WHERE 1');
+if($tmp['number'] == 0) {
+	$inst->db->query("INSERT INTO sys_ini (sysini_id, config) VALUES (1,'".mysql_real_escape_string($new_ini)."')");
+} else {
+	$inst->db->query("UPDATE sys_ini SET config = '".mysql_real_escape_string($new_ini)."' WHERE sysini_id = 1");
+}
+unset($old_ini_array);
+unset($tpl_ini_array);
+unset($new_ini);
+
+
 //** Shall the services be reconfigured during update
 $reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes','no'),'yes');
 
 if($reconfigure_services_answer == 'yes') {
-	//** Configure postfix
-	$inst->configure_postfix('dont-create-certs');
 	
-	//* Configure postfix
-	swriteln('Configuring Jailkit');
-	$inst->configure_jailkit();
+	if($conf['services']['mail']) {
+		//** Configure postfix
+		swriteln('Configuring Postfix');
+		$inst->configure_postfix('dont-create-certs');
 	
-	//** Configure saslauthd
-	swriteln('Configuring SASL');
-	$inst->configure_saslauthd();
+		//* Configure Jailkit
+		swriteln('Configuring Jailkit');
+		$inst->configure_jailkit();
 	
-	//** Configure PAM
-	swriteln('Configuring PAM');
-	$inst->configure_pam();
-
-	//** Configure courier
-	swriteln('Configuring Courier');
-	$inst->configure_courier();
-
-	//** Configure Spamasassin
-	swriteln('Configuring Spamassassin');
-	$inst->configure_spamassassin();
-
-	//** Configure Amavis
-	swriteln('Configuring Amavisd');
-	$inst->configure_amavis();
-
-	//** Configure Getmail
-	swriteln('Configuring Getmail');
-	$inst->configure_getmail();
-
-	//** Configure Pureftpd
-	swriteln('Configuring Pureftpd');
-	$inst->configure_pureftpd();
-
-	//** Configure MyDNS
-	swriteln('Configuring MyDNS');
-	$inst->configure_mydns();
-
-	//** Configure Apache
-	swriteln('Configuring Apache');
-	$inst->configure_apache();
+		//** Configure saslauthd
+		swriteln('Configuring SASL');
+		$inst->configure_saslauthd();
 	
+		//** Configure PAM
+		swriteln('Configuring PAM');
+		$inst->configure_pam();
+
+		//** Configure courier
+		swriteln('Configuring Courier');
+		$inst->configure_courier();
+
+		//** Configure Spamasassin
+		swriteln('Configuring Spamassassin');
+		$inst->configure_spamassassin();
+
+		//** Configure Amavis
+		swriteln('Configuring Amavisd');
+		$inst->configure_amavis();
+
+		//** Configure Getmail
+		swriteln('Configuring Getmail');
+		$inst->configure_getmail();
+	}
+	
+	if($conf['services']['web']) {
+		//** Configure Pureftpd
+		swriteln('Configuring Pureftpd');
+		$inst->configure_pureftpd();
+	}
+	
+	if($conf['services']['dns']) {
+		//** Configure MyDNS
+		swriteln('Configuring MyDNS');
+		$inst->configure_mydns();
+	}
+	
+	if($conf['services']['web']) {
+		//** Configure Apache
+		swriteln('Configuring Apache');
+		$inst->configure_apache();
+	}
+	
+
 	//* Configure DBServer
-	swriteln('Configuring DBServer');
+	swriteln('Configuring Database');
 	$inst->configure_dbserver();
+
 	
 	//if(@is_dir('/etc/Bastille')) {
-		//* Configure Firewall
-		swriteln('Configuring Firewall');
-		$inst->configure_firewall();
+	//* Configure Firewall
+	swriteln('Configuring Firewall');
+	$inst->configure_firewall();
 	//}
 }
 
@@ -259,19 +316,25 @@
 //** Restart services:
 if($reconfigure_services_answer == 'yes') {
 	swriteln('Restarting services ...');
-	if($conf['mysql']['init_script'] != '' && is_file($conf['mysql']['init_script']))					system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart');
-	if($conf['postfix']['init_script'] != '' && is_file($conf['postfix']['init_script']))				system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
-	if($conf['saslauthd']['init_script'] != '' && is_file($conf['saslauthd']['init_script']))			system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
-	if($conf['amavis']['init_script'] != '' && is_file($conf['amavis']['init_script']))					system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
-	if($conf['clamav']['init_script'] != '' && is_file($conf['clamav']['init_script']))					system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
-	if($conf['courier']['courier-authdaemon'] != '' && is_file($conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
-	if($conf['courier']['courier-imap'] != '' && is_file($conf['courier']['courier-imap'])) 			system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
-	if($conf['courier']['courier-imap-ssl'] != '' && is_file($conf['courier']['courier-imap-ssl'])) 	system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
-	if($conf['courier']['courier-pop'] != '' && is_file($conf['courier']['courier-pop'])) 				system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
-	if($conf['courier']['courier-pop-ssl'] != '' && is_file($conf['courier']['courier-pop-ssl'])) 		system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
-	if($conf['apache']['init_script'] != '' && is_file($conf['apache']['init_script'])) 				system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
-	if($conf['pureftpd']['init_script'] != '' && is_file($conf['pureftpd']['init_script']))				system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
-	if($conf['mydns']['init_script'] != '' && is_file($conf['mydns']['init_script']))					system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null');
+	if($conf['mysql']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['mysql']['init_script']))					system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart');
+	if($conf['services']['mail']) {
+		if($conf['postfix']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['postfix']['init_script']))				system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
+		if($conf['saslauthd']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['saslauthd']['init_script']))			system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
+		if($conf['amavis']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['amavis']['init_script']))					system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
+		if($conf['clamav']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['clamav']['init_script']))					system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
+		if($conf['courier']['courier-authdaemon'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
+		if($conf['courier']['courier-imap'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) 			system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
+		if($conf['courier']['courier-imap-ssl'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) 	system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
+		if($conf['courier']['courier-pop'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) 				system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
+		if($conf['courier']['courier-pop-ssl'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) 		system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
+	}
+	if($conf['services']['web']) {
+		if($conf['apache']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['apache']['init_script'])) 				system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
+		if($conf['pureftpd']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['pureftpd']['init_script']))				system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
+	}
+	if($conf['services']['dns']) {
+		if($conf['mydns']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['mydns']['init_script']))					system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null');
+	}
 }
 
 echo "Update finished.\n";

--
Gitblit v1.9.1