diff --git a/plugin/pkg/replacer/replacer.go b/plugin/pkg/replacer/replacer.go index 1775f7c24..b9e1fcaa6 100644 --- a/plugin/pkg/replacer/replacer.go +++ b/plugin/pkg/replacer/replacer.go @@ -55,7 +55,7 @@ func New(r *dns.Msg, rr *dnstest.Recorder, emptyValue string) Replacer { } rep.replacements["{rcode}"] = rcode rep.replacements["{rsize}"] = strconv.Itoa(rr.Len) - rep.replacements["{duration}"] = time.Since(rr.Start).String() + rep.replacements["{duration}"] = strconv.FormatFloat(time.Since(rr.Start).Seconds(), 'f', -1, 64) + "s" if rr.Msg != nil { rep.replacements[headerReplacer+"rflags}"] = flagsToString(rr.Msg.MsgHdr) } diff --git a/plugin/pkg/replacer/replacer_test.go b/plugin/pkg/replacer/replacer_test.go index 65bb8280f..2fcaafc92 100644 --- a/plugin/pkg/replacer/replacer_test.go +++ b/plugin/pkg/replacer/replacer_test.go @@ -1,6 +1,7 @@ package replacer import ( + "strings" "testing" "github.com/coredns/coredns/plugin/pkg/dnstest" @@ -30,6 +31,9 @@ func TestNewReplacer(t *testing.T) { if v.replacements["{size}"] != "29" { // size of request t.Errorf("Expected size to be 29, got %q", v.replacements["{size}"]) } + if !strings.Contains(v.replacements["{duration}"], "s") { + t.Errorf("Expected units of time to be in seconds") + } default: t.Fatal("Return Value from New Replacer expected pass type assertion into a replacer type\n")