X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/6eeb3bf97e57bb0f4d0942b9dd436eeb493c1e9f..63ac3b82c1cd33605e62688cd97688a6dae3cb9c:/lib/bind.dtl diff --git a/lib/bind.dtl b/lib/bind.dtl index 4f2c3c8..f781633 100644 --- a/lib/bind.dtl +++ b/lib/bind.dtl @@ -2,11 +2,31 @@ extern type dnsRecord; -extern val dnsA : host -> ip -> dnsRecord; -extern val dnsCNAME : host -> domain -> dnsRecord; +extern type srv_domain; +{{Like domain, but may contain underscores}} + +extern type bind_pattern; +{{Ways of describing in which cases a DNS mapping applies}} +extern val literal : host -> bind_pattern; +{{A rule applies only to this particular host.}} +extern val default : bind_pattern; +{{A rule applies directly to the domain for the current vhost block.}} +extern val wildcard : bind_pattern; +{{A rule applies to every host within the current domain.}} + +extern type srv_pattern; +{{Like bind_pattern, but for SRV and TXT records, where underscores are allowed in hostnames}} +extern val srv_literal : srv_domain -> srv_pattern; +extern val srv_default : srv_pattern; +extern val srv_wildcard : srv_pattern; + +extern val dnsA : bind_pattern -> ip -> dnsRecord; +extern val dnsAAAA : bind_pattern -> ipv6 -> dnsRecord; +extern val dnsAFSDB : domain -> dnsRecord; +extern val dnsCNAME : bind_pattern -> domain -> dnsRecord; extern val dnsMX : int -> domain -> dnsRecord; extern val dnsNS : domain -> dnsRecord; - -extern val dnsDefaultA : ip -> dnsRecord; +extern val dnsSRV : srv_pattern -> int -> int -> int -> domain -> dnsRecord; +extern val dnsTXT : srv_pattern -> no_newlines -> dnsRecord; extern val dns : dnsRecord -> [Domain] {TTL : int};