3 # Display the SOA for an existing master zone
5 require './bind8-lib.pl';
7 $zone = &get_zone_name($in{'index'}, $in{'view'});
8 $dom = $zone->{'name'};
9 &can_edit_zone($zone) ||
10 &error($text{'master_ecannot'});
11 $access{'params'} || &error($text{'master_esoacannot'});
12 $desc = &ip6int_to_net(&arpa_to_ip($dom));
13 &ui_print_header($desc, $text{'master_params'}, "",
14 undef, undef, undef, undef, &restart_links($zone));
16 @recs = &read_zone_file($zone->{'file'}, $dom);
18 $soa = $r if ($r->{'type'} eq "SOA");
19 $defttl = $r if ($r->{'defttl'});
21 $v = $soa->{'values'};
23 # form for editing SOA record
24 print &ui_form_start("save_soa.cgi", "post");
25 print &ui_hidden("num", $soa->{'num'});
26 print &ui_hidden("origin", $dom);
27 print &ui_hidden("index", $in{'index'});
28 print &ui_hidden("view", $in{'view'});
29 print &ui_table_start($text{'master_params'}, "width=100%", 4);
32 print &ui_table_row($text{'master_server'},
33 &ui_textbox("master", $v->[0], 30));
35 # Owner's email address
36 $v->[1] = &dotted_to_email($v->[1]);
37 print &ui_table_row($text{'master_email'},
38 &ui_textbox("email", $v->[1], 30));
41 @u = &extract_time_units($v->[3], $v->[4], $v->[5], $v->[6]);
42 print &ui_table_row($text{'master_refresh'},
43 &ui_textbox("refresh", $v->[3], 10)." ".
44 &time_unit_choice("refunit", $u[0]));
47 print &ui_table_row($text{'master_retry'},
48 &ui_textbox("retry", $v->[4], 10)." ".
49 &time_unit_choice("retunit", $u[1]));
52 print &ui_table_row($text{'master_expiry'},
53 &ui_textbox("expiry", $v->[5], 10)." ".
54 &time_unit_choice("expunit", $u[2]));
57 print &ui_table_row($text{'master_minimum'},
58 &ui_textbox("minimum", $v->[6], 10)." ".
59 &time_unit_choice("minunit", $u[3]));
62 $ttl = $defttl->{'defttl'} if ($defttl);
63 ($ttlu) = &extract_time_units($ttl);
64 print &ui_table_row($text{'master_defttl'},
65 &ui_radio("defttl_def", $defttl ? 0 : 1,
66 [ [ 1, $text{'default'} ], [ 0, " " ] ])."\n".
67 &ui_textbox("defttl", $ttl, 10)." ".
68 &time_unit_choice("defttlunit", $ttlu), 3);
70 if (!$config{'updserial_on'}) {
72 print &ui_table_row($text{'master_serial'},
73 &ui_textbox("serial", $v->[2], 20));
76 print &ui_table_end();
77 print &ui_form_end($access{'ro'} ? [ ] : [ [ undef, $text{'save'} ] ]);
79 &ui_print_footer("edit_master.cgi?index=$in{'index'}&view=$in{'view'}",
80 $text{'master_return'});