fix: reject unknown trace and dnstap block options (#8120)

This commit is contained in:
Ville Vesilehto
2026-05-22 02:06:25 +03:00
committed by GitHub
parent 1fbc686758
commit d9c6b9b8b4
4 changed files with 6 additions and 0 deletions

View File

@@ -180,6 +180,8 @@ func parseConfig(c *caddy.Controller) ([]*Dnstap, error) {
}
d.ExtraFormat = c.Val()
}
default:
return nil, c.Errf("unknown property '%s'", c.Val())
}
}
dnstaps = append(dnstaps, &d)

View File

@@ -59,6 +59,7 @@ func TestConfig(t *testing.T) {
{"dnstap dnstap.sock {\nidentity\n}\n", true, []results{{endpoint: "dnstap.sock", full: false, proto: "unix", identity: []byte(hostname), version: []byte("-"), multipleTcpWriteBuf: 1, multipleQueue: 1}}},
{"dnstap dnstap.sock {\nversion\n}\n", true, []results{{endpoint: "dnstap.sock", full: false, proto: "unix", identity: []byte(hostname), version: []byte("-"), multipleTcpWriteBuf: 1, multipleQueue: 1}}},
{"dnstap dnstap.sock {\nextra\n}\n", true, []results{{endpoint: "dnstap.sock", full: false, proto: "unix", identity: []byte(hostname), version: []byte("-"), multipleTcpWriteBuf: 1, multipleQueue: 1}}},
{"dnstap dnstap.sock {\nidentitiy NAME\n}\n", true, []results{{endpoint: "dnstap.sock", full: false, proto: "unix", identity: []byte(hostname), version: []byte("-"), multipleTcpWriteBuf: 1, multipleQueue: 1}}},
// Limits and parsing for writebuffer (MiB) and queue (x10k)
{"dnstap dnstap.sock full 1024 2048", false, []results{{endpoint: "dnstap.sock", full: true, proto: "unix", identity: []byte(hostname), version: []byte("-"), multipleTcpWriteBuf: 1024, multipleQueue: 2048}}},
{"dnstap dnstap.sock full 1025 1", true, []results{{endpoint: "dnstap.sock", full: true, proto: "unix", identity: []byte(hostname), version: []byte("-"), multipleTcpWriteBuf: 1, multipleQueue: 1}}},

View File

@@ -129,6 +129,8 @@ func traceParse(c *caddy.Controller) (*trace, error) {
if err != nil {
return nil, err
}
default:
return nil, c.Errf("unknown property '%s'", c.Val())
}
}
}

View File

@@ -44,6 +44,7 @@ func TestTraceParse(t *testing.T) {
{"trace {\n zipkin_max_backlog_size\n}", true, "", 1, `coredns`, false, 0, 0, 0},
{"trace {\n zipkin_max_batch_size\n}", true, "", 1, `coredns`, false, 0, 0, 0},
{"trace {\n zipkin_max_batch_interval\n}", true, "", 1, `coredns`, false, 0, 0, 0},
{"trace {\n evrey 100\n}", true, "", 1, `coredns`, false, 0, 0, 0},
}
for i, test := range tests {
c := caddy.NewTestController("dns", test.input)