From c6e05a8eebc58624c675d4b10d33e94e6b6fa83b Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Mon, 12 Sep 2011 10:16:19 -0400 Subject: [PATCH] Implemented: FS#1385 - Define all Email aliases in dovecot autoresponder --- server/lib/app.inc.php | 132 +++++++++++++++++++++++++++++-------------- 1 files changed, 89 insertions(+), 43 deletions(-) diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php index dd52be1..a1d765d 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, @@ -29,49 +30,74 @@ class app { - var $loaded_modules = array(); - var $loaded_plugins = array(); + var $loaded_modules = array(); + var $loaded_plugins = array(); - function app() { + function app() { global $conf; - if($conf["start_db"] == true) { - $this->load('db_'.$conf["db_type"]); + 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; + } + + } } function uses($classes) { - global $conf; - $cl = explode(',',$classes); - if(is_array($cl)) { - foreach($cl as $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; - } + global $conf; + + $cl = explode(',',$classes); + if(is_array($cl)) { + foreach($cl as $classname) { + if(!@is_object($this->$classname)) { + if(is_file($conf['classpath'].'/'.$classname.'.inc.php') && (DEVSYSTEM || !is_link($conf['classpath'].'/'.$classname.'.inc.php'))) { + include_once($conf['classpath'].'/'.$classname.'.inc.php'); + $this->$classname = new $classname; } } } + } } function load($classes) { - 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"); - } + global $conf; + + $cl = explode(',',$classes); + if(is_array($cl)) { + foreach($cl as $classname) { + if(is_file($conf['classpath'].'/'.$classname.'.inc.php') && (DEVSYSTEM || !is_link($conf['classpath'].'/'.$classname.'.inc.php'))) { + include_once($conf['classpath'].'/'.$classname.'.inc.php'); + } else { + die('Unable to load: '.$conf['classpath'].'/'.$classname.'.inc.php'); } } + } } /* @@ -82,30 +108,50 @@ function log($msg, $priority = 0) { - global $conf; - - if($priority >= $conf["log_priority"]) { + global $conf; + + if($priority >= $conf['log_priority']) { //if (is_writable($conf["log_file"])) { - if (!$fp = fopen ($conf["log_file"], "a")) { - die("Unable to open Logfile."); + if (!$fp = fopen ($conf['log_file'], 'a')) { + die('Unable to open logfile.'); } - switch ($priority) { - case 0: - $priority_txt = "DEBUG"; + switch ($priority) { + case 0: + $priority_txt = 'DEBUG'; break; - case 1: - $priority_txt = "WARNING"; + case 1: + $priority_txt = 'WARNING'; break; - case 2: - $priority_txt = "ERROR"; + case 2: + $priority_txt = 'ERROR'; break; - } + } - if (!fwrite($fp, date("d.m.Y-H:i")." - ".$priority_txt." - ". $msg."\r\n")) { - die("Unable to write to logfile."); + 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>"; - fclose($fp); + 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."); @@ -121,7 +167,7 @@ function error($msg) { $this->log($msg,3); - die($msg); + die($msg); } } @@ -132,4 +178,4 @@ $app = new app; -?> \ No newline at end of file +?> -- Gitblit v1.9.1