Files
webmin/bind8/edit_soa.cgi
2008-11-19 01:39:00 +00:00

82 lines
2.4 KiB
Perl
Executable File

#!/usr/local/bin/perl
# edit_soa.cgi
# Display the SOA for an existing master zone
require './bind8-lib.pl';
&ReadParse();
$zone = &get_zone_name($in{'index'}, $in{'view'});
$dom = $zone->{'name'};
&can_edit_zone($zone) ||
&error($text{'master_ecannot'});
$access{'params'} || &error($text{'master_esoacannot'});
$desc = &ip6int_to_net(&arpa_to_ip($dom));
&ui_print_header($desc, $text{'master_params'}, "",
undef, undef, undef, undef, &restart_links($zone));
@recs = &read_zone_file($zone->{'file'}, $dom);
foreach $r (@recs) {
$soa = $r if ($r->{'type'} eq "SOA");
$defttl = $r if ($r->{'defttl'});
}
$v = $soa->{'values'};
# form for editing SOA record
print &ui_form_start("save_soa.cgi");
print &ui_hidden("num", $soa->{'num'});
print &ui_hidden("origin", $dom);
print &ui_hidden("index", $in{'index'});
print &ui_hidden("view", $in{'view'});
print &ui_table_start($text{'master_params'}, "width=100%", 4);
# Master nameserver
print &ui_table_row($text{'master_server'},
&ui_textbox("master", $v->[0], 30));
# Owner's email address
$v->[1] = &dotted_to_email($v->[1]);
print &ui_table_row($text{'master_email'},
&ui_textbox("email", $v->[1], 30));
# Refresh time
@u = &extract_time_units($v->[3], $v->[4], $v->[5], $v->[6]);
print &ui_table_row($text{'master_refresh'},
&ui_textbox("refresh", $v->[3], 10)." ".
&time_unit_choice("refunit", $u[0]));
# Retry time
print &ui_table_row($text{'master_retry'},
&ui_textbox("retry", $v->[4], 10)." ".
&time_unit_choice("retunit", $u[1]));
# Expiry time
print &ui_table_row($text{'master_expiry'},
&ui_textbox("expiry", $v->[5], 10)." ".
&time_unit_choice("expunit", $u[2]));
# Minimum TTL
print &ui_table_row($text{'master_minimum'},
&ui_textbox("minimum", $v->[6], 10)." ".
&time_unit_choice("minunit", $u[3]));
# Default TTL
$ttl = $defttl->{'defttl'} if ($defttl);
($ttlu) = &extract_time_units($ttl);
print &ui_table_row($text{'master_defttl'},
&ui_radio("defttl_def", $defttl ? 0 : 1,
[ [ 1, $text{'default'} ], [ 0, " " ] ])."\n".
&ui_textbox("defttl", $ttl, 10)." ".
&time_unit_choice("defttlunit", $ttlu), 3);
if (!$config{'updserial_on'}) {
# Serial number
print &ui_table_row($text{'master_serial'},
&ui_textbox("serial", $v->[2], 20));
}
print &ui_table_end();
print &ui_form_end($access{'ro'} ? [ ] : [ [ undef, $text{'save'} ] ]);
&ui_print_footer("edit_master.cgi?index=$in{'index'}&view=$in{'view'}",
$text{'master_return'});