From d2d3b93d4df1d48f64797a9bbce95be18f1916bc Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 23 Feb 2009 06:01:49 -0500
Subject: [PATCH] Added code to prevent the excution of server scripts when the connect to the master db server fails.
---
server/server.php | 85 ++++++++++++++++++++++--------------------
1 files changed, 45 insertions(+), 40 deletions(-)
diff --git a/server/server.php b/server/server.php
index 384404c..1cbdec7 100644
--- a/server/server.php
+++ b/server/server.php
@@ -66,49 +66,54 @@
$app->log("Set Lock: ".$conf["temppath"].$conf["fs_div"].".ispconfig_lock", LOGLEVEL_DEBUG);
*/
-// get the dalaog_id of the last performed record
-$tmp_rec = $app->dbmaster->queryOneRecord("SELECT updated FROM server WHERE server_id = ".$conf["server_id"]);
-$conf['last_datalog_id'] = (int)$tmp_rec['updated'];
-unset($tmp_rec);
+if($app->dbmaster->connect()) {
-// Check if there is anything to update
-$tmp_rec = $app->dbmaster->queryOneRecord("SELECT count(server_id) as number from sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = 0)");
-$tmp_num_records = $tmp_rec["number"];
-unset($tmp_rec);
+ // get the dalaog_id of the last performed record
+ $tmp_rec = $app->dbmaster->queryOneRecord("SELECT updated FROM server WHERE server_id = ".$conf["server_id"]);
+ $conf['last_datalog_id'] = (int)$tmp_rec['updated'];
+ unset($tmp_rec);
-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('ini_parser,modules,plugins,file,services');
- // Get server configuration
- $conf["serverconfig"] = $app->ini_parser->parse_ini_string(stripslashes($server_db_record["config"]));
- // Load the modules that are im the mods-enabled folder
- $app->modules->loadModules('all');
- // Load the plugins that are in the plugins-enabled folder
- $app->plugins->loadPlugins('all');
- // Go trough the sys_datalog table and call the processing functions
- // in the modules that are hooked on to the table actions
- $app->modules->processDatalog();
- // Restart services that need to be restarted after configuration
- $app->services->processDelayedActions();
+ // Check if there is anything to update
+ $tmp_rec = $app->dbmaster->queryOneRecord("SELECT count(server_id) as number from sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = 0)");
+ $tmp_num_records = $tmp_rec["number"];
+ unset($tmp_rec);
+
+ 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('ini_parser,modules,plugins,file,services');
+ // Get server configuration
+ $conf["serverconfig"] = $app->ini_parser->parse_ini_string(stripslashes($server_db_record["config"]));
+ // Load the modules that are im the mods-enabled folder
+ $app->modules->loadModules('all');
+ // Load the plugins that are in the plugins-enabled folder
+ $app->plugins->loadPlugins('all');
+ // Go trough the sys_datalog table and call the processing functions
+ // in the modules that are hooked on to the table actions
+ $app->modules->processDatalog();
+ // Restart services that need to be restarted after configuration
+ $app->services->processDelayedActions();
+ } else {
+ /*
+ There is no trigger inside the database -> load only the core, maybe they have to do something
+ */
+ // Write the log
+ $app->log('No Updated records found, starting only the core.', LOGLEVEL_DEBUG);
+ // Load required base-classes
+ $app->uses('ini_parser,modules,plugins,file,services');
+ // Get server configuration
+ $conf["serverconfig"] = $app->ini_parser->parse_ini_string(stripslashes($server_db_record["config"]));
+ // Load the modules that are im the mods-core folder
+ $app->modules->loadModules('core');
+ // Load the plugins that are in the plugins-core folder
+ $app->plugins->loadPlugins('core');
+ }
} else {
- /*
- There is no trigger inside the database -> load only the core, maybe they have to do something
- */
- // Write the log
- $app->log('No Updated records found, starting only the core.', LOGLEVEL_DEBUG);
- // Load required base-classes
- $app->uses('ini_parser,modules,plugins,file,services');
- // Get server configuration
- $conf["serverconfig"] = $app->ini_parser->parse_ini_string(stripslashes($server_db_record["config"]));
- // Load the modules that are im the mods-core folder
- $app->modules->loadModules('core');
- // Load the plugins that are in the plugins-core folder
- $app->plugins->loadPlugins('core');
+ $app->log("Unable to connect to master server.",LOGLEVEL_ERROR);
}
/*
--
Gitblit v1.9.1