From 9e3ffe17b57dbc5b03c8e42e6ce4b724328045cf Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Sat, 08 Jun 2013 19:49:33 -0400
Subject: [PATCH] - Fixed FS#2872 - I think country code for my country is wrong in ssl ispconfig 3.
---
server/lib/classes/aps_installer.inc.php | 39 +++++++++++++++++++++++++++++++++++----
1 files changed, 35 insertions(+), 4 deletions(-)
diff --git a/server/lib/classes/aps_installer.inc.php b/server/lib/classes/aps_installer.inc.php
index f5b661c..6cb922f 100644
--- a/server/lib/classes/aps_installer.inc.php
+++ b/server/lib/classes/aps_installer.inc.php
@@ -294,7 +294,8 @@
$db_id = parent::getXPathValue($sxe, '//db:id');
if(empty($db_id)) return; // No database needed
- /*
+ /* WARNING: if this will ever be uncommented please check the updated prefix handling for user and db names!!!
+ *
// Set the database owner to the domain owner
// ISPConfig identifies the owner by the sys_groupid (not sys_userid!)
// so sys_userid can be set to any value
@@ -396,8 +397,28 @@
// Now delete an existing folder (affects install and removal in the same way)
@chdir($this->local_installpath);
- if(file_exists($this->local_installpath)) exec("rm -Rf ".escapeshellarg($this->local_installpath).'*');
- else mkdir($this->local_installpath, 0777, true);
+ if(file_exists($this->local_installpath)){
+ // make sure we don't delete error and stats folders
+ if($this->local_installpath == $this->document_root.'/'){
+ if(is_dir($this->document_root)){
+ $files = array_diff(scandir($this->document_root), array('.','..','error','stats'));
+ foreach($files as $file){
+ if(is_dir($this->document_root.'/'.$file)){
+ $app->file->removeDirectory($this->document_root.'/'.$file);
+ } else {
+ @unlink($this->document_root.'/'.$file);
+ }
+ }
+ } else {
+ @unlink($this->document_root);
+ mkdir($this->document_root, 0777, true);
+ }
+ } else {
+ exec("rm -Rf ".escapeshellarg($this->local_installpath).'*');
+ }
+ } else {
+ mkdir($this->local_installpath, 0777, true);
+ }
if($this->handle_type == 'install')
{
@@ -424,6 +445,11 @@
$this->file_owner_user = $owner_res['system_user'];
$this->file_owner_group = $owner_res['system_group'];
exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath));
+
+ //* Chown stats directory back
+ if(is_dir($this->local_installpath.'stats')) {
+ exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats'));
+ }
}
}
catch(Exception $e)
@@ -557,6 +583,11 @@
{
// The install succeeded, chown newly created files too
exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath));
+
+ //* Chown stats directory back
+ if(is_dir($this->local_installpath.'stats')) {
+ exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats'));
+ }
$app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_SUCCESS.'"
WHERE id = "'.$app->db->quote($task['instance_id']).'";');
@@ -613,7 +644,7 @@
if(!isset($task['instance_id'])) $task['instance_id'] = $instanceid;
// Download aps package
- if(!file_exists($this->packages_dir.'/'.$task['path'])) {
+ if(!file_exists($this->packages_dir.'/'.$task['path']) || filesize($this->packages_dir.'/'.$task['path']) == 0) {
$ch = curl_init();
$fh = fopen($this->packages_dir.'/'.$task['path'], 'wb');
curl_setopt($ch, CURLOPT_FILE, $fh);
--
Gitblit v1.9.1