[!
use strict;
use Proxmox::Form;
use Proxmox::Utils;
use Proxmox::Config::System;
use Proxmox::ConfigServer;
!]
[-
$fdat{domain} = Proxmox::Utils::trim ($fdat{domain});
$fdat{hostname} = Proxmox::Utils::trim ($fdat{hostname});
my $frm = Proxmox::Form->new (\%fdat);
my $system_cfg = $fdat{__system_config};
my $cc_ip = $system_cfg->can_change_ip ();
my $cc_dns = $system_cfg->can_change_dns ();
my $out = "";
my $old_ip = $system_cfg->get ('ipconfig', 'int_ip');
my $dns1 = $system_cfg->get ('dns', 'dns1');
if (!$cc_ip) {
$frm->add_cfg_element('ipconfig', "int_ip", "rotext", "127.0.0.1", __("IP Address"));
$frm->add_cfg_element('ipconfig', "int_mask", "rotext", "255.255.255.0", __("Subnet Mask"));
$frm->add_cfg_element('ipconfig', "int_gw", "rotext", "127.0.0.1", __("Gateway"));
} else {
$frm->add_cfg_element('ipconfig', "int_ip", "ip", "127.0.0.1", __("IP Address"));
$frm->add_cfg_element('ipconfig', "int_mask", "ip", "255.255.255.0", __("Subnet Mask"));
$frm->add_cfg_element('ipconfig', "int_gw", "ip", "127.0.0.1", __("Gateway"));
}
$frm->add_element("section_dns", "section", undef, "DNS");
if (!$cc_ip) {
$frm->add_cfg_element('dns', "hostname", "rotext", "", __("Hostname"));
} else {
$frm->add_cfg_element('dns', "hostname", "text", "", __("Hostname"));
}
if ($cc_dns) {
$frm->add_cfg_element('dns', "domain", "text", "", __("Domain"));
$frm->add_cfg_element('dns', "dns1", "ip", "127.0.0.1", __("First DNS"));
$frm->add_cfg_element('dns', "dns2", "ip", "127.0.0.1", __("Second DNS"));
} else {
$frm->add_cfg_element('dns', "domain", "rotext", "", __("Domain"));
$frm->add_cfg_element('dns', "dns1", "rotext", "127.0.0.1", __("First DNS"));
$frm->add_cfg_element('dns', "dns2", "rotext", "127.0.0.1", __("Second DNS"));
}
$frm->add_element("m3", "hidden");
my $nloc;
if ($frm->submit==0) {
$frm->load_cfg ($system_cfg);
} else {
if ($udat{AM} eq 'w') {
eval {
Proxmox::Utils::check_field (__("Hostname"), $fdat{hostname}, 'NOTEMPTY', 'NOWHITESPACES');
Proxmox::Utils::check_field (__("Domain"), $fdat{domain}, 'NOTEMPTY', 'NOWHITESPACES');
};
my $err = $@;
if (!$err) {
$frm->save_cfg ($system_cfg);
my $conn = Proxmox::ConfigClient::connect ();
$conn->rewrite_config_hosts ();
$conn->rewrite_config_dns ();
$conn->rewrite_config_ip ();
$conn->rewrite_config_postfix ();
$conn->rewrite_config_apache ();
$conn->rewrite_config_fetchmail ();
if ($old_ip ne $fdat{int_ip}) {
my $url = $req_rec->uri;
$nloc = "https://$fdat{int_ip}$url";
}
$conn->service_cmd ('network', 'restart');
} else {
$udat{popup_error} = $err;
}
} else {
$udat{popup_error} = Proxmox::Utils::msg ('nowr');
}
}
if ($nloc) {
$out .= <<__EOD;
__EOD
$out .= sprintf (__("Please reconnect at the new location") . '.', $nloc);
} else {
$out .= $frm->out_form;
}
print OUT $out;
-]