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