From afee192d2a77afa1c11d25156d0a44df94e19aed Mon Sep 17 00:00:00 2001
From: A. Täffner <darkalex@firesplash.de>
Date: Sat, 23 Jan 2016 07:30:37 -0500
Subject: [PATCH] fixed the cronjob and noticed a bug in ISPC but not able to report as FlySpray is offline

---
 server/plugins-available/network_settings_plugin.inc.php |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/server/plugins-available/network_settings_plugin.inc.php b/server/plugins-available/network_settings_plugin.inc.php
index 56e4980..13dbf3c 100644
--- a/server/plugins-available/network_settings_plugin.inc.php
+++ b/server/plugins-available/network_settings_plugin.inc.php
@@ -101,7 +101,7 @@
 				$network_tpl->setVar('broadcast', $this->broadcast($server_config['ip_address'], $server_config['netmask']));
 				$network_tpl->setVar('network', $this->network($server_config['ip_address'], $server_config['netmask']));
 
-				$records = $app->db->queryAllRecords("SELECT ip_address FROM server_ip WHERE server_id = ".intval($conf['server_id']) . ' ORDER BY server_ip_id ASC');
+				$records = $app->db->queryAllRecords("SELECT ip_address FROM server_ip WHERE server_id = ? ORDER BY server_ip_id ASC", $conf['server_id']);
 				$ip_records = array();
 				$additionl_ip_records = 0;
 				$n = 0;
@@ -179,7 +179,7 @@
 				$network_tpl->setVar('gateway', $server_config['gateway']);
 				$network_tpl->setVar('broadcast', $this->broadcast($server_config['ip_address'], $server_config['netmask']));
 
-				$records = $app->db->queryAllRecords("SELECT ip_address FROM server_ip WHERE server_id = ".intval($conf['server_id']) . " order by ip_address");
+				$records = $app->db->queryAllRecords("SELECT ip_address FROM server_ip WHERE server_id = ? order by ip_address", $conf['server_id']);
 				$ip_records = array();
 				$additionl_ip_records = 0;
 				$n = 0;
@@ -243,12 +243,61 @@
 
 		} else {
 			if($data['mirrored'] == true) {
-				$app->log('Skipping network config request. IP addresses from amster are not configured on the mirror.', LOGLEVEL_DEBUG);
+				$app->log('Skipping network config request. IP addresses from master are not configured on the mirror.', LOGLEVEL_DEBUG);
 			}
 			if($server_config['auto_network_configuration'] == 'n') {
 				$app->log('Network configuration disabled in server settings.', LOGLEVEL_DEBUG);
 			}
 		}
+		
+		//* Configure hostname
+		if($event_name == 'server_update' && $data['mirrored'] == false) {
+			
+			//* get old server config
+			$tmp = $app->ini_parser->parse_ini_string(stripslashes($data['old']['config']));
+			$old_server_config = $tmp['server'];
+			unset($tmp);
+			
+			$new_hostname = trim($server_config['hostname']);
+			$old_hostname = trim($old_server_config['hostname']);
+			
+			if($new_hostname != '' && $old_hostname != $new_hostname) {
+				
+				if(is_file('/etc/hostname')) {
+					$app->system->file_put_contents('/etc/hostname',$new_hostname);
+					$app->log('Changed /etc/hostname to '.$new_hostname, LOGLEVEL_DEBUG);
+				}
+				
+				if(is_file('/etc/mailname')) {
+					$app->system->file_put_contents('/etc/mailname',$new_hostname);
+					$app->log('Changed /etc/mailname to '.$new_hostname, LOGLEVEL_DEBUG);
+				}
+				
+				$postconf_commands = array(
+					'myhostname = '.$new_hostname,
+					'mydestination = '.$new_hostname.', localhost, localhost.localdomain'
+				);
+				
+				//* Executing the postconf commands
+				foreach($postconf_commands as $cmd) {
+					$command = "postconf -e '$cmd'";
+					exec($command);
+				}
+				
+				$app->log('Changed changed myhostname and mydestination in postfix main.cf to '.$new_hostname, LOGLEVEL_DEBUG);
+				
+				//* change /etc/hosts
+				$hosts = file_get_contents('/etc/hosts');
+				$hosts = str_replace($old_hostname,$new_hostname,$hosts);
+				$app->system->file_put_contents('/etc/hosts',$hosts);
+				
+				exec($app->system->getinitcommand('postfix', 'restart').' 2>&1');
+				exec($app->system->getinitcommand('networking', 'restart').' 2>&1');
+				
+			}
+			
+		}
+		
 
 	}
 

--
Gitblit v1.9.1