From b8d8d3d55cbecb6355659984c9184b2cdb1d1452 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 02 Jul 2007 16:39:06 -0400
Subject: [PATCH] Added mod for server configuration and updated the installer.

---
 install/lib/installer_base.lib.php        |    4 +-
 install/update.php                        |    4 +-
 server/mods-enabled/server_module.inc.php |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 114 insertions(+), 4 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index c711dcf..cd7e699 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -104,7 +104,7 @@
 		Create postfix configuration files
 	*/
 	
-	function configure_postfix($options = '';) {
+	function configure_postfix($options = '') {
 		global $conf;
 		
 		if(!is_dir($conf["dist_postfix_config_dir"])) $this->error("The postfix configuration directory ".$conf["dist_postfix_config_dir"]." does not exist.");
@@ -248,7 +248,7 @@
   flags=R user=vmail argv=/usr/bin/maildrop -d ${recipient} ${extension} ${recipient} ${user} ${nexthop} ${sender}
 		
 		*/
-		if(stristr($options,'dont-create-certs') {
+		if(stristr($options,'dont-create-certs')) {
 			// Create the SSL certificate
 			$command = "cd ".$conf["dist_postfix_config_dir"]."; openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509";
 			exec($command);
diff --git a/install/update.php b/install/update.php
index 394ab9b..8a81e32 100644
--- a/install/update.php
+++ b/install/update.php
@@ -42,7 +42,7 @@
 
 include_once("/usr/local/ispconfig/server/lib/config.inc.php");
 $conf_old = $conf;
-unset $conf;
+unset($conf);
 
 // Include the distribution specific installer class library
 // and configuration
@@ -75,7 +75,7 @@
 
 // Delete the old database
 exec("/etc/init.d/mysql stop");
-exec("rm -rf /var/lib/mysql/".$conf["db_database"]);
+if($conf["mysql_server_database"] != '') exec("rm -rf /var/lib/mysql/".$conf["mysql_server_database"]);
 exec("/etc/init.d/mysql start");
 
 // Create the mysql database
diff --git a/server/mods-enabled/server_module.inc.php b/server/mods-enabled/server_module.inc.php
new file mode 100644
index 0000000..1d672ab
--- /dev/null
+++ b/server/mods-enabled/server_module.inc.php
@@ -0,0 +1,110 @@
+<?php
+
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+class server_module {
+	
+	var $module_name = 'server_module';
+	var $class_name = 'server_module';
+	var $actions_available = array(	'server_insert',
+									'server_update',
+									'server_delete',
+									'server_ip_insert',
+									'server_ip_update',
+									'server_ip_delete');
+	
+	/*
+	 	This function is called when the module is loaded
+	*/
+	
+	function onLoad() {
+		global $app;
+		
+		/*
+		Annonce the actions that where provided by this module, so plugins 
+		can register on them.
+		*/
+		
+		$app->plugins->announceEvents($this->module_name,$this->actions_available);
+		
+		/*
+		As we want to get notified of any changes on several database tables,
+		we register for them.
+		
+		The following function registers the function "functionname"
+ 		to be executed when a record for the table "dbtable" is 
+ 		processed in the sys_datalog. "classname" is the name of the
+ 		class that contains the function functionname.
+		*/
+		
+		$app->modules->registerTableHook('server','server_module','process');
+		$app->modules->registerTableHook('server_ip','server_module','process');
+		
+		// Register service
+		//$app->services->registerService('httpd','web_module','restartHttpd');
+		
+	}
+	
+	/*
+	 This function is called when a change in one of the registered tables is detected.
+	 The function then raises the events for the plugins.
+	*/
+
+	function process($tablename,$action,$data) {
+		global $app;
+		
+		switch ($tablename) {
+			case 'server':
+				if($action == 'i') $app->plugins->raiseEvent('server_insert',$data);
+				if($action == 'u') $app->plugins->raiseEvent('server_update',$data);
+				if($action == 'd') $app->plugins->raiseEvent('server_delete',$data);
+			break;
+			case 'server_ip':
+				if($action == 'i') $app->plugins->raiseEvent('server_ip_insert',$data);
+				if($action == 'u') $app->plugins->raiseEvent('server_ip_update',$data);
+				if($action == 'd') $app->plugins->raiseEvent('server_ip_delete',$data);
+			break;
+		} // end switch
+	} // end function
+	
+	/*
+	// This function is used
+	function restartHttpd($action = 'restart') {
+		global $app;
+		if($action == 'restart') {
+			exec('/etc/init.d/apache2 restart');
+		} else {
+			exec('/etc/init.d/apache2 reload');
+		}
+	}
+	*/
+
+} // end class
+
+?>
\ No newline at end of file

--
Gitblit v1.9.1