#!/usr/local/bin/perl # conf_zonedef.cgi # Display defaults for master zones require './bind8-lib.pl'; $access{'defaults'} || &error($text{'zonedef_ecannot'}); &ui_print_header(undef, $text{'zonedef_title'}, "", undef, undef, undef, undef, &restart_links()); # Start of defaults for new zones form print &ui_form_start("save_zonedef.cgi", "post"); print &ui_table_start($text{'zonedef_msg'}, "width=100%", 4); &get_zone_defaults(\%zd); # Default refresh time print &ui_table_row($text{'master_refresh'}, &ui_textbox("refresh", $zd{'refresh'}, 10)." ". &time_unit_choice("refunit", $zd{'refunit'})); # Default retry time print &ui_table_row($text{'master_retry'}, &ui_textbox("retry", $zd{'retry'}, 10)." ". &time_unit_choice("retunit", $zd{'retunit'})); # Default expiry time print &ui_table_row($text{'master_expiry'}, &ui_textbox("expiry", $zd{'expiry'}, 10)." ". &time_unit_choice("expunit", $zd{'expunit'})); # Default minimum time (what is this really?) print &ui_table_row($text{'master_minimum'}, &ui_textbox("minimum", $zd{'minimum'}, 10)." ". &time_unit_choice("minunit", $zd{'minunit'})); # Records for new zones, as a table @table = ( ); for($i=0; $i<2 || $config{"tmpl_".($i-1)}; $i++) { @c = split(/\s+/, $config{"tmpl_$i"}, 3); push(@table, [ &ui_textbox("name_$i", $c[0], 15), &ui_select("type_$i", $c[1], [ map { [ $_, $text{"type_".$_} ] } ('A', 'CNAME', 'MX', 'NS', 'TXT', 'HINFO') ]), &ui_opt_textbox("value_$i", $c[2], 15, $text{'master_user'}), ]); } print &ui_table_row($text{'master_tmplrecs'}, &ui_columns_table([ $text{'master_name'}, $text{'master_type'}, $text{'master_value'} ], undef, \@table, undef, 1), 3); # Additional include file print &ui_table_row($text{'master_include'}, &ui_opt_textbox("include", $config{'tmpl_include'}, 40, $text{'master_noinclude'})." ". &file_chooser_button("include"), 3); # Default email address print &ui_table_row($text{'zonedef_email'}, &ui_textbox("email", $config{'tmpl_email'}, 40), 3); # Default nameservers print &ui_table_row($text{'zonedef_prins'}, &ui_opt_textbox("prins", $config{'default_prins'}, 30, &text('zonedef_this', "".&get_system_hostname()."")), 3); # Setup DNSSEC by default? if (&supports_dnssec()) { print &ui_table_hr(); # Enabled? print &ui_table_row($text{'zonedef_dnssec'}, &ui_yesno_radio("dnssec", $config{'tmpl_dnssec'}), 3); # Default algorithm print &ui_table_row($text{'zonedef_alg'}, &ui_select("alg", $config{'tmpl_dnssecalg'} || "RSASHA1", [ &list_dnssec_algorithms() ]), 3); # Default size $sizedef = $config{'tmpl_dnssecsizedef'}; $sizedef = 1 if ($sizedef eq ''); print &ui_table_row($text{'zonedef_size'}, &ui_radio("size_def", $sizedef, [ [ 1, $text{'zonekey_ave'}."
" ], [ 2, $text{'zonekey_strong'}."
"], [ 0, $text{'zonekey_other'} ] ]). " ".&ui_textbox("size", $config{'tmpl_dnssecsize'}, 6), 3); # Number of keys print &ui_table_row($text{'zonedef_single'}, &ui_radio("single", $config{'tmpl_dnssecsingle'} ? 1 : 0, [ [ 0, $text{'zonedef_two'} ], [ 1, $text{'zonedef_one'} ] ])); } print &ui_table_end(); # Start of table for global BIND options $conf = &get_config(); $options = &find("options", $conf); $mems = $options->{'members'}; foreach $c (&find("check-names", $mems)) { $check{$c->{'values'}->[0]} = $c->{'values'}->[1]; } print &ui_table_start($text{'zonedef_msg2'}, "width=100%", 4); print &addr_match_input($text{'zonedef_transfer'}, "allow-transfer", $mems); print &addr_match_input($text{'zonedef_query'}, "allow-query", $mems); print &ignore_warn_fail($text{'zonedef_cmaster'}, 'master', $check{'master'}); print &ignore_warn_fail($text{'zonedef_cslave'}, 'slave', $check{'slave'}); print &ignore_warn_fail($text{'zonedef_cresponse'}, 'response', $check{'response'}); print &choice_input($text{'zonedef_notify'}, "notify", $mems, $text{'yes'}, "yes", $text{'no'}, "no", $text{'default'}, undef); print &ui_table_end(); print &ui_form_end([ [ undef, $text{'save'} ] ]); &ui_print_footer("", $text{'index_return'}); # ignore_warn_fail(text, name, value) sub ignore_warn_fail { return &ui_table_row($_[0], &ui_radio($_[1], $_[2], [ [ 'ignore', $text{'ignore'} ], [ 'warn', $text{'warn'} ], [ 'fail', $text{'fail'} ], [ '', $text{'default'} ] ])); }