X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/6ae327f88a6be8efd02cfe4b713444f9f3ac2672..66d70ba27db23d3de71198ca25f99b5f7a8fe2d0:/lib/bind.dtl diff --git a/lib/bind.dtl b/lib/bind.dtl index 69612d0..f781633 100644 --- a/lib/bind.dtl +++ b/lib/bind.dtl @@ -2,9 +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 dnsSRV : srv_pattern -> int -> int -> int -> domain -> dnsRecord; +extern val dnsTXT : srv_pattern -> no_newlines -> dnsRecord; extern val dns : dnsRecord -> [Domain] {TTL : int};