From b2cee83e8894e89fd3e0793c84fb92a8cf928613 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Tue, 19 Apr 2016 14:17:54 -0400
Subject: [PATCH] - fixed problem on select boxes with hidden options

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

diff --git a/install/update.php b/install/update.php
index 840a52a..8f818df 100644
--- a/install/update.php
+++ b/install/update.php
@@ -174,10 +174,8 @@
 $conf['ispconfig_log_priority'] = $conf_old["log_priority"];
 
 $inst = new installer();
+if (!$inst->get_php_version()) die('ISPConfig requieres PHP '.$inst->min_php."\n");
 $inst->is_update = true;
-
-//** Detect the installed applications
-$inst->find_installed_apps();
 
 echo "This application will update ISPConfig 3 on your server.\n\n";
 
@@ -228,10 +226,10 @@
 //** Test mysql root connection
 $finished = false;
 do {
-	if(@mysql_connect($conf["mysql"]["host"], $conf["mysql"]["admin_user"], $conf["mysql"]["admin_password"])) {
+	if(@mysqli_connect($conf["mysql"]["host"], $conf["mysql"]["admin_user"], $conf["mysql"]["admin_password"])) {
 		$finished = true;
 	} else {
-		swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error());
+		swriteln($inst->lng('Unable to connect to mysql server').' '.mysqli_connect_error());
 		$conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password'],'mysql_root_password');
 	}
 } while ($finished == false);
@@ -257,7 +255,7 @@
 		$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 . ':' . (int)$tmp_mysql_server_port, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) {
+		if(@mysqli_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password, $tmp_mysql_server_database, (int)$tmp_mysql_server_port)) {
 			$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;
@@ -265,7 +263,7 @@
 			$conf['mysql']['master_database'] = $tmp_mysql_server_database;
 			$finished = true;
 		} else {
-			swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error());
+			swriteln($inst->lng('Unable to connect to mysql server').' '.mysqli_connect_error());
 		}
 	} while ($finished == false);
 	unset($finished);
@@ -303,6 +301,18 @@
 }
 //}
 
+//** Detect the installed applications
+$inst->find_installed_apps();
+
+$conf['services']['mail'] = $conf['postfix']['installed'];
+if ($conf['powerdns']['installed'] || $conf['bind']['installed'] || $conf['mydns']['installed']) $conf['services']['dns'] = true;
+if ($conf['apache']['installed'] || $conf['nginx']['installed']) $conf['services']['web'] = true;
+$conf['services']['xmpp'] =  $conf['xmpp']['installed'];;
+if ($conf['ufw']['installed'] || $conf['firewall']['installed']) $conf['services']['firewall'] = true;
+$conf['services']['vserver'] = $conf['services']['vserver'];
+$conf['services']['db'] = true;
+
+
 //** Shall the services be reconfigured during update
 $reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no', 'selected'), 'yes','reconfigure_services');
 
@@ -311,39 +321,34 @@
 	if($conf['services']['mail']) {
 
 		//** Configure postfix
-		if($inst->reconfigure_app('Postfix', $reconfigure_services_answer)) {
+		if($inst->reconfigure_app('Postfix and IMAP/POP3', $reconfigure_services_answer)) {
 			swriteln('Configuring Postfix');
 			$inst->configure_postfix('dont-create-certs');
+
+			if($conf['dovecot']['installed'] == true) {
+				//* Configure dovecot
+				swriteln('Configuring Dovecot');
+				$inst->configure_dovecot();
+			} elseif ($conf['courier']['installed'] == true) {
+				//** 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 mailman
 		if($conf['mailman']['installed'] == true && $inst->reconfigure_app('Mailman', $reconfigure_services_answer)) {
 			swriteln('Configuring Mailman');
 			$inst->configure_mailman('update');
-		}
-
-		//* Configure Jailkit
-		if($inst->reconfigure_app('Jailkit', $reconfigure_services_answer)) {
-			swriteln('Configuring Jailkit');
-			$inst->configure_jailkit();
-		}
-
-		if($conf['dovecot']['installed'] == true && $inst->reconfigure_app('Dovecot', $reconfigure_services_answer)) {
-			//* Configure dovecot
-			swriteln('Configuring Dovecot');
-			$inst->configure_dovecot();
-		} elseif ($conf['courier']['installed'] == true && $inst->reconfigure_app('Courier', $reconfigure_services_answer)) {
-			//** 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
@@ -406,6 +411,13 @@
 			swriteln('Configuring Apps vhost');
 			$inst->configure_apps_vhost();
 			}
+	
+			//* Configure Jailkit
+			if($inst->reconfigure_app('Jailkit', $reconfigure_services_answer)) {
+				swriteln('Configuring Jailkit');
+				$inst->configure_jailkit();
+			}
+
 		}
 
     if($conf['services']['xmpp'] && $inst->reconfigure_app('XMPP', $reconfigure_services_answer)) {
@@ -534,7 +546,7 @@
 
 //* 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);
+exec('find /usr/local/ispconfig -type f -print0 | xargs -0 md5sum > '.$md5_filename . ' 2>/dev/null');
 chmod($md5_filename,0700);
 
 echo "Update finished.\n";

--
Gitblit v1.9.1