From d2d3b93d4df1d48f64797a9bbce95be18f1916bc Mon Sep 17 00:00:00 2001 From: tbrehm Date: Mon, 23 Feb 2009 11:01:49 +0000 Subject: [PATCH] Added code to prevent the excution of server scripts when the connect to the master db server fails. --- server/server.php | 89 +++++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/server/server.php b/server/server.php index 384404c0a5..1cbdec7778 100644 --- a/server/server.php +++ b/server/server.php @@ -66,49 +66,54 @@ if(is_file($conf["temppath"].$conf["fs_div"].".ispconfig_lock")){ $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); - -// 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(); +if($app->dbmaster->connect()) { + + // 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); + + // 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); } /* -- GitLab