tbrehm
2009-02-23 d2d3b93d4df1d48f64797a9bbce95be18f1916bc
Added code to prevent the excution of server scripts when the connect to the master db server fails.
1 files modified
85 ■■■■ changed files
server/server.php 85 ●●●● patch | view | raw | blame | history
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);
}
/*