Rethinked the code for RFC2317 style in-addr.arpa zones and our DNS view syntax.

This commit is contained in:
Ossi Herrala 2012-12-10 09:02:53 +00:00
parent 25a7a01857
commit 464848816a

View file

@ -269,18 +269,18 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [],
$source = "AUTO", $key = "none", $keytype = "hmac-md5",
$contact = "NONE") {
$tmpname = regsubst($name, '([^/]+/)?([0-9]+)/([0-9\.]+\.in-addr\.arpa)', '\1\2-\3')
case dirname($tmpname) {
".": { $view = "" }
"default": { $view = "" }
default: { $view = regsubst(dirname($tmpname), '^(.*)', '\1/') }
}
if $name =~ /\.in-addr\.arpa$/ {
$zonefile = basename($tmpname)
$zone = regsubst($zonefile, '-', '/')
if $name =~ /([^\/]+\/)?([0-9]+)\/([0-9\.]+\.in-addr\.arpa)/ {
# Special handling for RFC2317 style in-addr.arpa zones
case $1 {
".": { $view = "" }
"default": { $view = "" }
default: { $view = $1 }
}
$zone = "$2/$3"
$zonefile = "$2-$3"
} else {
$zonefile = basename($tmpname)
$zone = $zonefile
$zone = basename($name)
$zonefile = $zone
}
case $role {