X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/c219fe5500b4294ba8dc0bce57b5c7d60b39065e..254d5faaae330b43f04ad7f39fb4340457d78776:/lib/bind.dtl diff --git a/lib/bind.dtl b/lib/bind.dtl index 151c410..f781633 100644 --- a/lib/bind.dtl +++ b/lib/bind.dtl @@ -5,17 +5,28 @@ extern type dnsRecord; extern type srv_domain; {{Like domain, but may contain underscores}} -extern val dnsA : host -> ip -> dnsRecord; -extern val dnsAAAA : host -> ipv6 -> dnsRecord; +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 : host -> domain -> dnsRecord; +extern val dnsCNAME : bind_pattern -> domain -> dnsRecord; extern val dnsMX : int -> domain -> dnsRecord; extern val dnsNS : domain -> dnsRecord; -extern val dnsSRV : srv_domain -> int -> int -> int -> domain -> dnsRecord; -extern val dnsTXT : host -> no_newlines -> dnsRecord; - -extern val dnsDefaultA : ip -> dnsRecord; -extern val dnsDefaultAAAA : ipv6 -> dnsRecord; -extern val dnsDefaultTXT : no_newlines -> 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};