Commit a43eb3b0 authored by Till Brehm's avatar Till Brehm

Implemented: FS#3568 - Configure server hostname trough ISPConfig

parent 061d7c84
......@@ -126,8 +126,11 @@ $form["tabs"]['server'] = array(
2 => array( 'event' => 'SAVE',
'type' => 'TOLOWER')
),
'validators' => array(0 => array('type' => 'NOTEMPTY',
'errmsg' => 'hostname_error_empty'),
'validators' => array( 0 => array('type' => 'NOTEMPTY',
'errmsg' => 'hostname_error_empty'),
1 => array ('type' => 'REGEX',
'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/',
'errmsg'=> 'hostname_error_regex'),
),
'value' => '',
'width' => '40',
......
......@@ -49,6 +49,7 @@ $wb["ip_address_error_wrong"] = 'Invalid IP address format.';
$wb["netmask_error_wrong"] = 'Invalid Netmask format.';
$wb["gateway_error_wrong"] = 'Invalid Gateway format.';
$wb["hostname_error_empty"] = 'Hostname is empty.';
$wb["hostname_error_regex"] = 'Invalid Hostname.';
$wb["nameservers_error_empty"] = 'Nameserver is empty.';
$wb["config_dir_txt"] = 'Config directory';
$wb["init_script_txt"] = 'Cron init script name';
......
......@@ -243,12 +243,61 @@ class network_settings_plugin {
} 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');
}
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment