ftimme
2011-09-19 4ffb51e51f89a45256836fb55ad1c29f5e06beb2
server/server.php
@@ -1,7 +1,6 @@
<?php
/*
  Copyright (c) 2007, Till Brehm, projektfarm Gmbh
  Copyright (c) 2007-2011, Till Brehm, projektfarm Gmbh
  All rights reserved.
  Redistribution and use in source and binary forms, with or without modification,
@@ -28,8 +27,9 @@
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
require('lib/config.inc.php');
require('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);
@@ -54,33 +54,68 @@
 * Try to Load the server configuration from the master-db
 */
if ($app->dbmaster->connect()) {
   // get the dalaog_id of the last performed record
   $server_db_record = $app->dbmaster->queryOneRecord("SELECT * FROM server WHERE server_id = " . $conf['server_id']);
   $conf['last_datalog_id'] = (int) $server_db_record['updated'];
   $conf['mirror_server_id'] = (int) $server_db_record['mirror_server_id'];
   // Load the ini_parser
   $app->uses('ini_parser');
   // Get server configuration
   $conf['serverconfig'] = $app->ini_parser->parse_ini_string(stripslashes($server_db_record['config']));
   // Set the loglevel
   $conf['log_priority'] = intval($conf['serverconfig']['server']['loglevel']);
   // we do not need this variable anymore
   unset($server_db_record);
   /*
    * Save the rescue-config, maybe we need it (because the database is down)
    */
   $tmp['serverconfig']['server']['loglevel'] = $conf['log_priority'];
   $tmp['serverconfig']['rescue'] = $conf['serverconfig']['rescue'];
   file_put_contents(dirname(__FILE__) . "/temp/rescue_module_serverconfig.ser.txt", serialize($tmp));
   unset($tmp);
   // protect the file
   chmod(dirname(__FILE__) . "/temp/rescue_module_serverconfig.ser.txt", 0600);
} else {
   /*
    * The master-db is not available.
    * Problem: because we need to start the rescue-module (to rescue the DB if this IS the
    * server, the master-db is running at) we have to initialize some config...
    */
   $conf['last_datalog_id'] = intval('9223372036854775807'); // maxint at 32 and 64 bit systems
   $conf['mirror_server_id'] = 0; // no mirror
   // Set the loglevel to warning
   $conf['log_priority'] = LOGLEVEL_WARN;
   /*
    * If there is a temp-file with the data we could get from the database, then we use it
    */
   $tmp = array();
   if (file_exists(dirname(__FILE__) . "/temp/rescue_module_serverconfig.ser.txt")){
      $tmp = unserialize(file_get_contents(dirname(__FILE__) . "/temp/rescue_module_serverconfig.ser.txt"));
   }
   // maxint at 32 and 64 bit systems
   $conf['last_datalog_id'] = intval('9223372036854775807');
   // no mirror
   $conf['mirror_server_id'] = 0;
   // Set the loglevel
   $conf['log_priority'] = (isset($tmp['serverconfig']['server']['loglevel']))? $tmp['serverconfig']['server']['loglevel'] : LOGLEVEL_ERROR;
   /*
    * Set the configuration to rescue the database
    */
   $conf['serverconfig']['rescue']['try_rescue'] = 'y';
   $conf['serverconfig']['rescue']['do_not_try_rescue_mysql'] = 'n';
   if (isset($tmp['serverconfig']['rescue'])){
      $conf['serverconfig']['rescue'] = $tmp['serverconfig']['rescue'];
   }
   else{
      $conf['serverconfig']['rescue']['try_rescue'] = 'n';
   }
   // we do not need this variable anymore
   unset($tmp);
}