'editlist_parts' => [ { type=>'text' },
{ type=>'immutable', value=>'IN' },
{ type=>'select',
- select_enum=>{ map { $_=>$_ } qw(A CNAME MX NS)} },
+ select_enum=>{ map { $_=>$_ } qw(A CNAME MX NS TXT)} },
{ type=> 'text' }, ],
},
$self->recaf =~ /^(IN)$/ or return "Illegal recaf: ". $self->recaf;
$self->recaf($1);
- $self->rectype =~ /^(SOA|NS|MX|A|PTR|CNAME|_mstr)$/
- or return "Illegal rectype (only SOA NS MX A PTR CNAME recognized): ".
+ $self->rectype =~ /^(SOA|NS|MX|A|PTR|CNAME|TXT|_mstr)$/
+ or return "Illegal rectype (only SOA NS MX A PTR CNAME TXT recognized): ".
$self->rectype;
$self->rectype($1);
$self->recdata =~ /^([a-z0-9\.\-]+|\@)$/i
or return "Illegal data for CNAME record: ". $self->recdata;
$self->recdata($1);
+ } elsif ( $self->rectype eq 'TXT' ) {
+ $self->recdata =~ /^((?:\S+)|(?:"[[:ascii:]]+"))$/
+ or return "Illegal data for TXT record: ". $self->recdata;
+ $self->recdata($1);
} elsif ( $self->rectype eq '_mstr' ) {
$self->recdata =~ /^((\d{1,3}\.){3}\d{1,3})$/
or return "Illegal data for _master pseudo-record: ". $self->recdata;
<INPUT TYPE="text" NAME="reczone">
<INPUT TYPE="hidden" NAME="recaf" VALUE="IN"> IN
<SELECT NAME="rectype">
-<% foreach (qw( A NS CNAME MX PTR) ) { %>
+<% foreach (qw( A NS CNAME MX PTR TXT) ) { %>
<OPTION VALUE="<%=$_%>"><%=$_%></OPTION>
<% } %>
</SELECT>