summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/Conf.pm2
-rw-r--r--FS/FS/domain_record.pm8
-rw-r--r--FS/FS/svc_domain.pm1
-rwxr-xr-xhttemplate/view/svc_domain.cgi2
4 files changed, 9 insertions, 4 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index fa5d3c1b4..703b32129 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -647,7 +647,7 @@ httemplate/docs/config.html
'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' }, ],
},
diff --git a/FS/FS/domain_record.pm b/FS/FS/domain_record.pm
index 7b67f666d..f052f83ac 100644
--- a/FS/FS/domain_record.pm
+++ b/FS/FS/domain_record.pm
@@ -257,8 +257,8 @@ sub check {
$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);
@@ -291,6 +291,10 @@ sub check {
$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;
diff --git a/FS/FS/svc_domain.pm b/FS/FS/svc_domain.pm
index 2642146ea..6d5435718 100644
--- a/FS/FS/svc_domain.pm
+++ b/FS/FS/svc_domain.pm
@@ -369,6 +369,7 @@ sub domain_record {
MX => 3,
CNAME => 4,
A => 5,
+ TXT => 6,
);
sort { $order{$a->rectype} <=> $order{$b->rectype} }
diff --git a/httemplate/view/svc_domain.cgi b/httemplate/view/svc_domain.cgi
index cd9f79d36..057b15788 100755
--- a/httemplate/view/svc_domain.cgi
+++ b/httemplate/view/svc_domain.cgi
@@ -87,7 +87,7 @@ Service #<%= $svcnum %>
<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>