php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /usr/libexec/webmin/virtual-server/ |
files >> //usr/libexec/webmin/virtual-server/edit_record.cgi |
#!/usr/bin/perl # Show a form for creating or editing a DNS record require './virtual-server-lib.pl'; &ReadParse(); $d = &get_domain($in{'dom'}); $d || &error($text{'edit_egone'}); &can_edit_domain($d) || &error($text{'edit_ecannot'}); &can_edit_records($d) || &error($text{'records_ecannot'}); &require_bind(); if ($in{'type'}) { # Adding a new record if ($in{'type'} eq '$ttl') { $r = { 'defttl' => '1h' }; } else { $r = { 'type' => $in{'type'}, 'name' => ".".$d->{'dom'}."." }; } &ui_print_header(&domain_in($d), $text{'record_title1'}, ""); } else { # Editing existing one ($recs, $file) = &get_domain_dns_records_and_file($d); $file || &error($recs); ($r) = grep { $_->{'id'} eq $in{'id'} } @$recs; $r || &error($text{'record_egone'}); $r->{'defttl'} || $r->{'name'} eq $d->{'dom'}."." || $r->{'name'} =~ /\.\Q$d->{'dom'}\E\.$/ || &error(&text('record_eunder', $r->{'name'}, $d->{'dom'})); &ui_print_header(&domain_in($d), $text{'record_title2'}, ""); } # Get type, verify editability if ($r->{'defttl'}) { $t = { 'type' => '$ttl', 'desc' => $text{'records_typedefttl'} }; } else { ($t) = grep { $_->{'type'} eq $r->{'type'} } &list_dns_record_types($d); } &can_edit_record($d, $r) && $t || &error($text{'record_eedit'}); print &ui_form_start("save_record.cgi", "post"); print &ui_hidden("dom", $in{'dom'}); print &ui_hidden("type", $in{'type'}); print &ui_hidden("id", $in{'id'}); print &ui_table_start($text{'record_header'}, undef, 2); # Record name if ($r->{'defttl'}) { # Default TTL has no name! } elsif ($in{'type'} && $t->{'domain'}) { # New record, might be same as domain, or within it print &ui_table_row($text{'record_name'}, &ui_radio("name_def", 0, [ [ 1, $text{'record_same'} ], [ 0, " " ] ]). &ui_textbox("name", undef, 20). "<tt>.$d->{'dom'}</tt>"); } elsif ($r->{'name'} eq $d->{'dom'}.".") { # Same as domain - disallow changes $name = $r->{'name'}; $name =~ s/\.$//; print &ui_table_row($text{'record_name'}, "<tt>$name</tt>"); } else { # Within the domain $r->{'name'} =~ /^(\S*)\.\Q$d->{'dom'}\E\.$/ || &error($text{'record_eparse'}); $name = $1; print &ui_table_row($text{'record_name'}, &ui_textbox("name", $name, 20). "<tt>.$d->{'dom'}</tt>"); } # Record type print &ui_table_row($text{'record_type'}, $t->{'type'}." - ".$t->{'desc'}); if ($r->{'defttl'}) { # Default TTL for domain print &ui_table_row($text{'record_defttl'}, &ttl_field("defttl", $r->{'defttl'})); } else { # TTL for record print &ui_table_row($text{'record_ttl'}, &ui_radio("ttl_def", $r->{'ttl'} ? 0 : 1, [ [ 1, $text{'record_ttl1'} ], [ 0, $text{'record_ttl0'} ] ])." ". &ttl_field("ttl", $r->{'ttl'})); # Values (type specific) @vals = @{$t->{'values'}}; for(my $i=0; $i<@vals; $i++) { if ($vals[$i]->{'size'}) { $field = &ui_textbox("value_$i", $r->{'values'}->[$i], $vals[$i]->{'size'}); } else { $field = &ui_textarea("value_$i", $r->{'values'}->[$i], $vals[$i]->{'height'}, $vals[$i]->{'width'}, "soft"); } $field .= " ".$vals[$i]->{'suffix'}; print &ui_table_row($vals[$i]->{'desc'}, $field); } } # Record comment print &ui_table_row($text{'record_comment'}, &ui_textbox("comment", $r->{'comment'}, 60)); print &ui_table_end(); if ($in{'type'}) { print &ui_form_end([ [ undef, $text{'create'} ] ]); } elsif (&can_delete_record($d, $r)) { print &ui_form_end([ [ undef, $text{'save'} ], [ 'delete', $text{'delete'} ] ]); } else { print &ui_form_end([ [ undef, $text{'save'} ] ]); } &ui_print_footer("list_records.cgi?dom=$in{'dom'}", $text{'records_return'}, &domain_footer_link($d), "", $text{'index_return'}); # ttl_field(name, value) # Returns a field for entering a TTL sub ttl_field { local ($name, $ttl) = @_; local $ttl_units; if ($ttl =~ /^(\d+)([a-z])$/i) { $ttl = $1; $ttl_units = lc($2); } else { $ttl_units = "s"; } return &ui_textbox($name, $ttl, 5)." ". &ui_select($name."_units", $ttl_units || "s", [ [ "s", $bind8::text{'seconds'} ], [ "m", $bind8::text{'minutes'} ], [ "h", $bind8::text{'hours'} ], [ "d", $bind8::text{'days'} ], [ "w", $bind8::text{'weeks'} ] ], 1, 0, 1); }y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`