From 66c3bc24f069a2854bdf1eeebb6dcb51f6ef0afb Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Wed, 28 Oct 2009 14:30:28 -0400 Subject: [PATCH] Implemented: FS#757 - Add "custom" option to transports --- server/lib/app.inc.php | 100 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 75 insertions(+), 25 deletions(-) diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php index 1394b1e..0fe0b8e 100644 --- a/server/lib/app.inc.php +++ b/server/lib/app.inc.php @@ -1,6 +1,7 @@ <?php + /* -Copyright (c) 2006, Till Brehm, projektfarm Gmbh +Copyright (c) 2007, Till Brehm, projektfarm Gmbh All rights reserved. Redistribution and use in source and binary forms, with or without modification, @@ -28,14 +29,40 @@ */ class app { - - function app() { + + var $loaded_modules = array(); + var $loaded_plugins = array(); + + function app() { global $conf; if($conf["start_db"] == true) { $this->load('db_'.$conf["db_type"]); $this->db = new db; + if($this->db->linkId) $this->db->closeConn(); + $this->db->dbHost = $conf["db_host"]; + $this->db->dbName = $conf["db_database"]; + $this->db->dbUser = $conf["db_user"]; + $this->db->dbPass = $conf["db_password"]; + + /* + Initialize the connection to the master DB, + if we are in a multiserver setup + */ + + if($conf["dbmaster_host"] != '' && $conf["dbmaster_host"] != $conf["db_host"]) { + $this->dbmaster = new db; + if($this->dbmaster->linkId) $this->dbmaster->closeConn(); + $this->dbmaster->dbHost = $conf["dbmaster_host"]; + $this->dbmaster->dbName = $conf["dbmaster_database"]; + $this->dbmaster->dbUser = $conf["dbmaster_user"]; + $this->dbmaster->dbPass = $conf["dbmaster_password"]; + } else { + $this->dbmaster = $this->db; + } + + } } @@ -46,7 +73,7 @@ $cl = explode(',',$classes); if(is_array($cl)) { foreach($cl as $classname) { - if(!is_object($this->$classname)) { + if(!@is_object($this->$classname)) { if(is_file($conf['classpath'] . "/".$classname.".inc.php") && !is_link($conf['classpath'] . "/".$classname.".inc.php")) { include_once($conf['classpath'] . "/".$classname.".inc.php"); $this->$classname = new $classname; @@ -56,18 +83,19 @@ } } - function load($files) { + function load($classes) { - global $conf; - $fl = explode(',',$files); - if(is_array($fl)) { - foreach($fl as $file) { - if(is_file($conf['classpath'] . "/".$classname.".inc.php") && !is_link($conf['classpath'] . "/".$classname.".inc.php")) { - include_once($conf['classpath'] . "/".$file.".inc.php"); - } - } - } - + global $conf; + $cl = explode(',',$classes); + if(is_array($cl)) { + foreach($cl as $classname) { + if(is_file($conf['classpath'] . "/".$classname.".inc.php") && !is_link($conf['classpath'] . "/".$classname.".inc.php")) { + include_once($conf['classpath'] . "/".$classname.".inc.php"); + } else { + die('Unable to load: '.$conf['classpath'] . "/".$classname.".inc.php"); + } + } + } } /* @@ -81,19 +109,18 @@ global $conf; if($priority >= $conf["log_priority"]) { - if (is_writable($conf["log_file"])) { - + //if (is_writable($conf["log_file"])) { if (!$fp = fopen ($conf["log_file"], "a")) { - die("Unable to open Logfile."); + die("Unable to open logfile."); } switch ($priority) { - case: 0; + case 0: $priority_txt = "DEBUG"; break; - case: 1; + case 1: $priority_txt = "WARNING"; break; - case: 2; + case 2: $priority_txt = "ERROR"; break; } @@ -101,11 +128,34 @@ if (!fwrite($fp, date("d.m.Y-H:i")." - ".$priority_txt." - ". $msg."\r\n")) { die("Unable to write to logfile."); } + echo date("d.m.Y-H:i")." - ".$priority_txt." - ". $msg."\n"; fclose($fp); - } else { - $this->error("Logfile ist nicht beschreibbar."); - } + // Log to database + if(isset($this->dbmaster)) { + $server_id = $conf['server_id']; + $loglevel = $priority; + $tstamp = time(); + $message = $this->dbmaster->quote($msg); + $datalog_id = (isset($this->modules->current_datalog_id) && $this->modules->current_datalog_id > 0)?$this->modules->current_datalog_id:0; + if($datalog_id > 0) { + $tmp_rec = $this->dbmaster->queryOneRecord("SELECT count(syslog_id) as number FROM sys_log WHERE datalog_id = $datalog_id AND loglevel = ".LOGLEVEL_ERROR); + //* Do not insert duplicate errors into the web log. + if($tmp_rec['number'] == 0) { + $sql = "INSERT INTO sys_log (server_id,datalog_id,loglevel,tstamp,message) VALUES ('$server_id',$datalog_id,'$loglevel','$tstamp','$message')"; + $this->dbmaster->query($sql); + } + } else { + $sql = "INSERT INTO sys_log (server_id,datalog_id,loglevel,tstamp,message) VALUES ('$server_id',0,'$loglevel','$tstamp','$message')"; + $this->dbmaster->query($sql); + } + + + } + + //} else { + // die("Unable to write to logfile."); + //} } // if } // func @@ -117,7 +167,7 @@ function error($msg) { $this->log($msg,3); - die(); + die($msg); } } -- Gitblit v1.9.1