plugin/template : add support for extended DNS errors (#5659)

* plugin/template : add support for extended DNS errors

Signed-off-by: Ondřej Benkovský <ondrej.benkovsky@jamf.com>
This commit is contained in:
Ondřej Benkovský
2022-10-03 17:04:56 +02:00
committed by GitHub
parent b9a31f2c89
commit 2fa9821c7e
5 changed files with 94 additions and 0 deletions

View File

@@ -2,6 +2,7 @@ package template
import (
"regexp"
"strconv"
gotmpl "text/template"
"github.com/coredns/caddy"
@@ -123,6 +124,22 @@ func templateParse(c *caddy.Controller) (handler Handler, err error) {
}
t.rcode = rcode
case "ederror":
args := c.RemainingArgs()
if len(args) != 1 && len(args) != 2 {
return handler, c.ArgErr()
}
code, err := strconv.ParseUint(args[0], 10, 16)
if err != nil {
return handler, c.Errf("error parsing extended DNS error code %s, %v\n", c.Val(), err)
}
if len(args) == 2 {
t.ederror = &ederror{code: uint16(code), reason: args[1]}
} else {
t.ederror = &ederror{code: uint16(code)}
}
case "fallthrough":
t.fall.SetZonesFromArgs(c.RemainingArgs())