3 # Display defaults for master zones
5 require './bind8-lib.pl';
6 $access{'defaults'} || &error($text{'zonedef_ecannot'});
7 &ui_print_header(undef, $text{'zonedef_title'}, "",
8 undef, undef, undef, undef, &restart_links());
10 # Start of defaults for new zones form
11 print &ui_form_start("save_zonedef.cgi", "post");
12 print &ui_table_start($text{'zonedef_msg'}, "width=100%", 4);
13 &get_zone_defaults(\%zd);
15 # Default refresh time
16 print &ui_table_row($text{'master_refresh'},
17 &ui_textbox("refresh", $zd{'refresh'}, 10)." ".
18 &time_unit_choice("refunit", $zd{'refunit'}));
21 print &ui_table_row($text{'master_retry'},
22 &ui_textbox("retry", $zd{'retry'}, 10)." ".
23 &time_unit_choice("retunit", $zd{'retunit'}));
26 print &ui_table_row($text{'master_expiry'},
27 &ui_textbox("expiry", $zd{'expiry'}, 10)." ".
28 &time_unit_choice("expunit", $zd{'expunit'}));
30 # Default minimum time (what is this really?)
31 print &ui_table_row($text{'master_minimum'},
32 &ui_textbox("minimum", $zd{'minimum'}, 10)." ".
33 &time_unit_choice("minunit", $zd{'minunit'}));
35 # Records for new zones, as a table
37 for($i=0; $i<2 || $config{"tmpl_".($i-1)}; $i++) {
38 @c = split(/\s+/, $config{"tmpl_$i"}, 3);
39 push(@table, [ &ui_textbox("name_$i", $c[0], 15),
40 &ui_select("type_$i", $c[1],
41 [ map { [ $_, $text{"type_".$_} ] }
42 ('A', 'CNAME', 'MX', 'NS', 'TXT', 'HINFO') ]),
43 &ui_opt_textbox("value_$i", $c[2], 15,
44 $text{'master_user'}),
47 print &ui_table_row($text{'master_tmplrecs'},
48 &ui_columns_table([ $text{'master_name'}, $text{'master_type'},
49 $text{'master_value'} ],
50 undef, \@table, undef, 1), 3);
52 # Additional include file
53 print &ui_table_row($text{'master_include'},
54 &ui_opt_textbox("include", $config{'tmpl_include'}, 40,
55 $text{'master_noinclude'})." ".
56 &file_chooser_button("include"), 3);
58 # Default email address
59 print &ui_table_row($text{'zonedef_email'},
60 &ui_textbox("email", $config{'tmpl_email'}, 40), 3);
63 print &ui_table_row($text{'zonedef_prins'},
64 &ui_opt_textbox("prins", $config{'default_prins'}, 30,
65 &text('zonedef_this', "<tt>".&get_system_hostname()."</tt>")), 3);
67 # Setup DNSSEC by default?
68 if (&supports_dnssec()) {
72 print &ui_table_row($text{'zonedef_dnssec'},
73 &ui_yesno_radio("dnssec", $config{'tmpl_dnssec'}), 3);
76 print &ui_table_row($text{'zonedef_alg'},
77 &ui_select("alg", $config{'tmpl_dnssecalg'} || "RSASHA1",
78 [ &list_dnssec_algorithms() ]), 3);
81 $sizedef = $config{'tmpl_dnssecsizedef'};
82 $sizedef = 1 if ($sizedef eq '');
83 print &ui_table_row($text{'zonedef_size'},
84 &ui_radio("size_def", $sizedef,
85 [ [ 1, $text{'zonekey_ave'}."<br>" ],
86 [ 2, $text{'zonekey_strong'}."<br>"],
87 [ 0, $text{'zonekey_other'} ] ]).
88 " ".&ui_textbox("size", $config{'tmpl_dnssecsize'}, 6), 3);
91 print &ui_table_row($text{'zonedef_single'},
92 &ui_radio("single", $config{'tmpl_dnssecsingle'} ? 1 : 0,
93 [ [ 0, $text{'zonedef_two'} ],
94 [ 1, $text{'zonedef_one'} ] ]));
97 print &ui_table_end();
99 # Start of table for global BIND options
100 $conf = &get_config();
101 $options = &find("options", $conf);
102 $mems = $options->{'members'};
103 foreach $c (&find("check-names", $mems)) {
104 $check{$c->{'values'}->[0]} = $c->{'values'}->[1];
106 print &ui_table_start($text{'zonedef_msg2'}, "width=100%", 4);
108 print &addr_match_input($text{'zonedef_transfer'}, "allow-transfer", $mems);
109 print &addr_match_input($text{'zonedef_query'}, "allow-query", $mems);
111 print &ignore_warn_fail($text{'zonedef_cmaster'}, 'master', $check{'master'});
112 print &ignore_warn_fail($text{'zonedef_cslave'}, 'slave', $check{'slave'});
114 print &ignore_warn_fail($text{'zonedef_cresponse'}, 'response',
116 print &choice_input($text{'zonedef_notify'}, "notify", $mems,
117 $text{'yes'}, "yes", $text{'no'}, "no",
118 $text{'default'}, undef);
120 print &ui_table_end();
121 print &ui_form_end([ [ undef, $text{'save'} ] ]);
123 &ui_print_footer("", $text{'index_return'});
125 # ignore_warn_fail(text, name, value)
128 return &ui_table_row($_[0],
129 &ui_radio($_[1], $_[2], [ [ 'ignore', $text{'ignore'} ],
130 [ 'warn', $text{'warn'} ],
131 [ 'fail', $text{'fail'} ],
132 [ '', $text{'default'} ] ]));