[! use strict; use PVE::I18N; use PVE::HTMLForm; use PVE::HTMLUtils; use PVE::ConfigServer; !] [- use strict; sub html_table_line { my ($v1, $v2, $v3, $v4) = @_; $v1 = " " if !$v1; $v2 = " " if !$v2; $v3 = " " if !$v3; $v4 = " " if !$v4; my $html = ''; $html .= "$v1$v2"; $html .= "$v3$v4\n"; return $html; } my $conn = PVE::ConfigClient::connect (); my $form = PVE::HTMLForm->new (\%fdat); my $out = ''; if ($form->action eq 'save') { eval { check_write_mode ($udat{AM}); $conn->set_config_data ('hostname', $fdat{hostname}); my $resolv = $conn->get_config_data ('resolvconf')->result; $resolv->{search} = $fdat{domain}; $resolv->{nameservers} = []; @{$resolv->{nameservers}}[0] = $fdat{dns1}; @{$resolv->{nameservers}}[1] = $fdat{dns2}; @{$resolv->{nameservers}}[2] = $fdat{dns3}; $conn->set_config_data ('resolvconf', $resolv); }; $udat{popup_error} = $@ if $@; } #ALWAYS RELOAD my $hostname = $conn->get_config_data ('hostname')->result; my $resolv = $conn->get_config_data ('resolvconf')->result; $out .= $form->create_header(); my $html = ''; $html .= html_table_line (__('Hostname') . ':', $form->create_element("hostname", "text", $hostname), __('First DNS Server') . ':', $form->create_element("dns1", "ip", @{$resolv->{nameservers}}[0] || '0.0.0.0')); $html .= html_table_line (__('Domain') . ':', $form->create_element("domain", "text", $resolv->{search}), __('Second DNS Server') . ':', $form->create_element("dns2", "ip", @{$resolv->{nameservers}}[1] || '0.0.0.0')); $html .= html_table_line (undef, undef, __('Third DNS Server') . ':', $form->create_element("dns3", "ip", @{$resolv->{nameservers}}[2] || '0.0.0.0')); $html .= "

"; $html .= $form->create_cmdbutton ('save'); $out .= PVE::HTMLUtils::create_statusframe (undef, "DNS settings", undef, $html); $out .= $form->create_footer(); print OUT $out; -]