%
set error ""
set type ""
set record ""
array set q {
type {}
format html
rpdomain {}
rpmbox {}
rptxt {}
srvservice {}
srvpriority 0
srvweight 0
srvport {}
srvtarget {}
txtdomain {}
txttext {}
}
if {[ns_getform] != ""} {
getform q
set code [catch {
if {[info exists q(make-rp)]} {
set rpdomain [djbdns::validateAndNormalizeDotted \
$q(rpdomain)]
set rpmbox [djbdns::validateAndNormalizeDotted $q(rpmbox)]
set rptxt [djbdns::validateAndNormalizeDotted $q(rptxt)]
set record ":[djbdns::escapeName $rpdomain]:17:[djbdns::dottedToRR $rpmbox][djbdns::dottedToRR $rptxt]"
set type RP
} elseif {[info exists q(make-srv)]} {
set srvservice [djbdns::validateAndNormalizeDotted \
$q(srvservice)]
set srvpriority [djbdns::validate16bit $q(srvpriority) Priority]
set srvweight [djbdns::validate16bit $q(srvweight) Weight]
set srvport [djbdns::validate16bit $q(srvport) Port]
set srvtarget [djbdns::validateAndNormalizeDotted \
$q(srvtarget)]
set record ":[djbdns::escapeName $srvservice]:33"
append record ":[djbdns::16bitToRR $srvpriority]"
append record "[djbdns::16bitToRR $srvweight]"
append record "[djbdns::16bitToRR $srvport]"
append record "[djbdns::dottedToRR $srvtarget]"
set type SRV
} elseif {[info exist q(make-txt)]} {
set txtdomain [djbdns::validateAndNormalizeDotted \
$q(txtdomain)]
set txttext [djbdns::escapeBinary \
[encoding convertto utf-8 $q(txttext)]]
set record "'$txtdomain:$txttext"
set type TXT
}
} result]
if {$code == 1} {
global errorCode errorInfo
if {![string equal $errorCode user]} {
ns_log Error $errorInfo
}
set error "
<%= $error %>
<%= $record %>
Create a tinydns
RP, SRV, or TXT Record
<%="
Someday I may add the ability to create other
record types. Mail me your requests.
Non-ASCII Characters
This software will attempt to convert non-ASCII characters
into UTF-8 in the output records. However, various problems in
Web protocols make this conversion unreliable. I do my best,
but you are warned that it might not work. Note that non-ASCII
characters are not currently allowed in DNS on the Internet.