From 14150027a166de379bd61ba3f15ac8c8a92524d5 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 18 Sep 2015 01:54:15 -0400
Subject: [PATCH] update mail_mail_domain_plugin.inc.php

---
 install/update.php |  114 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 69 insertions(+), 45 deletions(-)

diff --git a/install/update.php b/install/update.php
index 311c070..970a107 100644
--- a/install/update.php
+++ b/install/update.php
@@ -247,13 +247,15 @@
 	$finished = false;
 	do {
 		$tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname');
+		$tmp_mysql_server_port = $inst->free_query('MySQL master server port', $conf['mysql']['master_port'],'mysql_master_port');
 		$tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user');	 
 		$tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password');
 		$tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database');
 
 		//* Initialize the MySQL server connection
-		if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) {
+		if(@mysql_connect($tmp_mysql_server_host . ':' . (int)$tmp_mysql_server_port, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) {
 			$conf['mysql']['master_host'] = $tmp_mysql_server_host;
+			$conf['mysql']['master_port'] = $tmp_mysql_server_port;
 			$conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user;
 			$conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password;
 			$conf['mysql']['master_database'] = $tmp_mysql_server_database;
@@ -267,10 +269,8 @@
 	// initialize the connection to the master database
 	$inst->dbmaster = new db();
 	if($inst->dbmaster->linkId) $inst->dbmaster->closeConn();
-	$inst->dbmaster->dbHost = $conf['mysql']["master_host"];
-	$inst->dbmaster->dbName = $conf['mysql']["master_database"];
-	$inst->dbmaster->dbUser = $conf['mysql']["master_admin_user"];
-	$inst->dbmaster->dbPass = $conf['mysql']["master_admin_password"];
+	$inst->dbmaster->setDBData($conf['mysql']["master_host"], $conf['mysql']["master_admin_user"], $conf['mysql']["master_admin_password"]);
+	$inst->dbmaster->setDBName($conf['mysql']["master_database"]);
 } else {
 	$inst->dbmaster = $inst->db;
 }
@@ -300,30 +300,35 @@
 //}
 
 //** Shall the services be reconfigured during update
-$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes','reconfigure_services');
+$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no', 'selected'), 'yes','reconfigure_services');
 
-if($reconfigure_services_answer == 'yes') {
+if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'selected') {
 
 	if($conf['services']['mail']) {
+
 		//** Configure postfix
-		swriteln('Configuring Postfix');
-		$inst->configure_postfix('dont-create-certs');
+		if($inst->reconfigure_app('Postfix', $reconfigure_services_answer)) {
+			swriteln('Configuring Postfix');
+			$inst->configure_postfix('dont-create-certs');
+		}
 
 		//** Configure mailman
-		if($conf['mailman']['installed'] == true) {
+		if($conf['mailman']['installed'] == true && $inst->reconfigure_app('Mailman', $reconfigure_services_answer)) {
 			swriteln('Configuring Mailman');
 			$inst->configure_mailman('update');
 		}
 
 		//* Configure Jailkit
-		swriteln('Configuring Jailkit');
-		$inst->configure_jailkit();
+		if($inst->reconfigure_app('Jailkit', $reconfigure_services_answer)) {
+			swriteln('Configuring Jailkit');
+			$inst->configure_jailkit();
+		}
 
-		if($conf['dovecot']['installed'] == true) {
+		if($conf['dovecot']['installed'] == true && $inst->reconfigure_app('Dovecot', $reconfigure_services_answer)) {
 			//* Configure dovecot
 			swriteln('Configuring Dovecot');
 			$inst->configure_dovecot();
-		} else {
+		} elseif ($conf['courier']['installed'] == true && $inst->reconfigure_app('Courier', $reconfigure_services_answer)) {
 			//** Configure saslauthd
 			swriteln('Configuring SASL');
 			$inst->configure_saslauthd();
@@ -338,27 +343,25 @@
 		}
 
 		//** Configure Spamasassin
-		swriteln('Configuring Spamassassin');
-		$inst->configure_spamassassin();
+		if($inst->reconfigure_app('Spamassassin', $reconfigure_services_answer)) {
+			swriteln('Configuring Spamassassin');
+			$inst->configure_spamassassin();
+		}
 
 		//** Configure Amavis
-		if($conf['amavis']['installed'] == true) {
+		if($conf['amavis']['installed'] == true && $inst->reconfigure_app('Amavisd', $reconfigure_services_answer)) {
 			swriteln('Configuring Amavisd');
 			$inst->configure_amavis();
 		}
 
 		//** Configure Getmail
-		swriteln('Configuring Getmail');
-		$inst->configure_getmail();
+		if ($inst->reconfigure_app('Getmail', $reconfigure_services_answer)) {
+			swriteln('Configuring Getmail');
+			$inst->configure_getmail();
+		}
 	}
 
-	if($conf['services']['web'] && $conf['pureftpd']['installed'] == true) {
-		//** Configure Pureftpd
-		swriteln('Configuring Pureftpd');
-		$inst->configure_pureftpd();
-	}
-
-	if($conf['services']['dns']) {
+	if($conf['services']['dns'] && $inst->reconfigure_app('DNS', $reconfigure_services_answer)) {
 		//* Configure DNS
 		if($conf['powerdns']['installed'] == true) {
 			swriteln('Configuring PowerDNS');
@@ -373,32 +376,40 @@
 	}
 
 	if($conf['services']['web']) {
-		if($conf['webserver']['server_type'] == 'apache'){
-			//** Configure Apache
-			swriteln('Configuring Apache');
-			$inst->configure_apache();
 
-			//** Configure vlogger
-			swriteln('Configuring vlogger');
-			$inst->configure_vlogger();
-		} else {
-			//** Configure nginx
-			swriteln('Configuring nginx');
-			$inst->configure_nginx();
+		if($conf['pureftpd']['installed'] == true && $inst->reconfigure_app('Pureftpd', $reconfigure_services_answer)) {
+			//** Configure Pureftpd
+			swriteln('Configuring Pureftpd');
+			$inst->configure_pureftpd();
 		}
 
-		//** Configure apps vhost
-		swriteln('Configuring Apps vhost');
-		$inst->configure_apps_vhost();
-	}
+		if($inst->reconfigure_app('Web-Server', $reconfigure_services_answer)) {
+			if($conf['webserver']['server_type'] == 'apache'){
+				//** Configure Apache
+				swriteln('Configuring Apache');
+				$inst->configure_apache();
 
+				//** Configure vlogger
+				swriteln('Configuring vlogger');
+				$inst->configure_vlogger();
+			} else {
+				//** Configure nginx
+				swriteln('Configuring nginx');
+				$inst->configure_nginx();
+			}
 
-	//* Configure DBServer
-	swriteln('Configuring Database');
-	$inst->configure_dbserver();
+			//** Configure apps vhost
+			swriteln('Configuring Apps vhost');
+			$inst->configure_apps_vhost();
+			}
+		}
 
+    if($conf['services']['xmpp'] && $inst->reconfigure_app('XMPP', $reconfigure_services_answer)) {
+        //** Configure Metronome XMPP
+        $inst->configure_xmpp('dont-create-certs');
+    }
 
-	if($conf['services']['firewall']) {
+	if($conf['services']['firewall'] && $inst->reconfigure_app('Firewall', $reconfigure_services_answer)) {
 		if($conf['ufw']['installed'] == true) {
 			//* Configure Ubuntu Firewall
 			$conf['services']['firewall'] = true;
@@ -410,6 +421,10 @@
 			$inst->configure_bastille_firewall();
 		}
 	}
+
+	//* Configure DBServer
+	swriteln('Configuring Database');
+	$inst->configure_dbserver();
 
 	/*
 	if($conf['squid']['installed'] == true) {
@@ -494,6 +509,10 @@
 		if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '') system($inst->getinitcommand($conf['bind']['init_script'], 'restart').' &> /dev/null');
 	}
 
+    if($conf['services']['xmpp']) {
+        if($conf['xmpp']['installed'] == true && $conf['xmpp']['init_script'] != '') system($inst->getinitcommand($conf['xmpp']['init_script'], 'restart').' &> /dev/null');
+    }
+
 	if($conf['services']['proxy']) {
 		// if($conf['squid']['installed'] == true && $conf['squid']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['squid']['init_script']))     system($conf['init_scripts'].'/'.$conf['squid']['init_script'].' restart &> /dev/null');
 		if($conf['nginx']['installed'] == true && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'restart').' &> /dev/null');
@@ -504,6 +523,11 @@
 	}
 }
 
+//* Set default servers
+setDefaultServers();
+
+$inst->create_mount_script();
+
 //* Create md5 filelist
 $md5_filename = '/usr/local/ispconfig/security/data/file_checksums_'.date('Y-m-d_h-i').'.md5';
 exec('find /usr/local/ispconfig -type f -print0 | xargs -0 md5sum > '.$md5_filename);

--
Gitblit v1.9.1