From d87f76019fc231ec20d95126a7fee0487e7be5f0 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 14 Aug 2012 10:56:20 -0400
Subject: [PATCH] - Added new web folder named private to web folder layout. The folder is intended to store data that shall not be visible in the web directory, it is owned by the user of the web. - Changed ownership of web root directory to root user in all security modes to prevent symlink attacks. - Apache log files are now owned by user root. - Improved functions in system library.
---
server/server.php | 64 ++++++++++++-------------------
1 files changed, 25 insertions(+), 39 deletions(-)
diff --git a/server/server.php b/server/server.php
index 967d13a..54a4b5b 100644
--- a/server/server.php
+++ b/server/server.php
@@ -27,11 +27,9 @@
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-// $script_path allows development work of using a symbolic link farm
-// to use along side git or svn
-$script_path = dirname($_SERVER["SCRIPT_FILENAME"]);
-require("$script_path/lib/config.inc.php");
-require("$script_path/lib/app.inc.php");
+define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"]));
+require(SCRIPT_PATH."/lib/config.inc.php");
+require(SCRIPT_PATH."/lib/app.inc.php");
set_time_limit(0);
ini_set('error_reporting', E_ALL & ~E_NOTICE);
@@ -40,24 +38,13 @@
$conf['server_id'] = intval($conf['server_id']);
/*
- // Get server record, if updates where available for this server
- $server_db_record = $app->db->queryOneRecord("SELECT * FROM server WHERE update = 1 AND server_id = ".$conf['server_id']);
- if($server_db_record == false) {
- $app->log('Nothing to update for server_id '.$conf['server_id']);
- die();
- } else {
- // Set update status to 0, so we dont start the update process twice
- $app->db->query("UPDATE server SET update = 0 WHERE server_id = ".$conf['server_id']);
- $app->log('Begin update.');
- }
- */
-
-/*
* Try to Load the server configuration from the master-db
*/
-if ($app->dbmaster->connect()) {
+if ($app->dbmaster->connect_error == NULL) {
$server_db_record = $app->dbmaster->queryOneRecord("SELECT * FROM server WHERE server_id = " . $conf['server_id']);
-
+
+ if(!is_array($server_db_record)) die('Unable to load the server configuration from database.');
+
$conf['last_datalog_id'] = (int) $server_db_record['updated'];
$conf['mirror_server_id'] = (int) $server_db_record['mirror_server_id'];
@@ -148,7 +135,7 @@
/*
* Next we try to process the datalog
*/
-if ($app->db->connect() && $app->dbmaster->connect()) {
+if ($app->db->connect_error == NULL && $app->dbmaster->connect_error == NULL) {
// Check if there is anything to update
if ($conf['mirror_server_id'] > 0) {
@@ -159,29 +146,28 @@
$tmp_num_records = $tmp_rec['number'];
unset($tmp_rec);
-
+
+ //** Load required base-classes
+ $app->uses('modules,plugins,file,services,system');
+ //** Load the modules that are in the mods-enabled folder
+ $app->modules->loadModules('all');
+ //** Load the plugins that are in the plugins-enabled folder
+ $app->plugins->loadPlugins('all');
if ($tmp_num_records > 0) {
- /*
- There is something to do, triggert by the database -> do it!
- */
- // Write the Log
$app->log("Found $tmp_num_records changes, starting update process.", LOGLEVEL_DEBUG);
- // Load required base-classes
- $app->uses('modules,plugins,file,services');
- // Load the modules that are in the mods-enabled folder
- $app->modules->loadModules('all');
- // Load the plugins that are in the plugins-enabled folder
- $app->plugins->loadPlugins('all');
- // Go through the sys_datalog table and call the processing functions
- // from the modules that are hooked on to the table actions
+ //** Go through the sys_datalog table and call the processing functions
+ //** from the modules that are hooked on to the table actions
$app->modules->processDatalog();
- // Restart services that need to after configuration
- $app->services->processDelayedActions();
- // All modules are already loaded and processed, so there is NO NEED to load the core once again...
- $needStartCore = false;
}
+ //** Process actions from sys_remoteaction table
+ $app->modules->processActions();
+ //** Restart services that need to after configuration
+ $app->services->processDelayedActions();
+ //** All modules are already loaded and processed, so there is NO NEED to load the core once again...
+ $needStartCore = false;
+
} else {
- if (!$app->db->connect()) {
+ if ($app->db->connect->connect_error == NULL) {
$app->log('Unable to connect to local server.' . $app->db->errorMessage, LOGLEVEL_WARN);
} else {
$app->log('Unable to connect to master server.' . $app->dbmaster->errorMessage, LOGLEVEL_WARN);
--
Gitblit v1.9.1