Handle hostnames with upper-case letters
[webmin.git] / bind8 / edit_soa.cgi
1 #!/usr/local/bin/perl
2 # edit_soa.cgi
3 # Display the SOA for an existing master zone
4
5 require './bind8-lib.pl';
6 &ReadParse();
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));
15
16 @recs = &read_zone_file($zone->{'file'}, $dom);
17 foreach $r (@recs) {
18         $soa = $r if ($r->{'type'} eq "SOA");
19         $defttl = $r if ($r->{'defttl'});
20         }
21 $v = $soa->{'values'};
22
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);
30
31 # Master nameserver
32 print &ui_table_row($text{'master_server'},
33         &ui_textbox("master", $v->[0], 30));
34
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));
39
40 # Refresh time
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]));
45
46 # Retry time
47 print &ui_table_row($text{'master_retry'},
48         &ui_textbox("retry", $v->[4], 10)." ".
49         &time_unit_choice("retunit", $u[1]));
50
51 # Expiry time
52 print &ui_table_row($text{'master_expiry'},
53         &ui_textbox("expiry", $v->[5], 10)." ".
54         &time_unit_choice("expunit", $u[2]));
55
56 # Minimum TTL
57 print &ui_table_row($text{'master_minimum'},
58         &ui_textbox("minimum", $v->[6], 10)." ".
59         &time_unit_choice("minunit", $u[3]));
60
61 # Default TTL
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);
69
70 if (!$config{'updserial_on'}) {
71         # Serial number
72         print &ui_table_row($text{'master_serial'},
73                 &ui_textbox("serial", $v->[2], 20));
74         }
75
76 print &ui_table_end();
77 print &ui_form_end($access{'ro'} ? [ ] : [ [ undef, $text{'save'} ] ]);
78
79 &ui_print_footer("edit_master.cgi?index=$in{'index'}&view=$in{'view'}",
80         $text{'master_return'});
81