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 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 50 insertions(+), 4 deletions(-) diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php index dd52be1..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, @@ -39,6 +40,29 @@ 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; + } + + } } @@ -49,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; @@ -87,7 +111,7 @@ if($priority >= $conf["log_priority"]) { //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: @@ -104,9 +128,31 @@ 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."<br>"; + echo date("d.m.Y-H:i")." - ".$priority_txt." - ". $msg."\n"; fclose($fp); + // 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."); //} -- Gitblit v1.9.1