diff --git a/dns/manifests/init.pp b/dns/manifests/init.pp index 23c1a30..ecc373d 100644 --- a/dns/manifests/init.pp +++ b/dns/manifests/init.pp @@ -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 {