[! 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; -]