diff --git a/plugin/kubernetes/parse.go b/plugin/kubernetes/parse.go index adef4a024..1c072a649 100644 --- a/plugin/kubernetes/parse.go +++ b/plugin/kubernetes/parse.go @@ -82,6 +82,9 @@ func parseRequest(name, zone string) (r recordRequest, err error) { // stripUnderscore removes a prefixed underscore from s. func stripUnderscore(s string) string { + if len(s) == 0 { + return s + } if s[0] != '_' { return s } diff --git a/plugin/kubernetes/parse_test.go b/plugin/kubernetes/parse_test.go index 4b8000b02..739a405ff 100644 --- a/plugin/kubernetes/parse_test.go +++ b/plugin/kubernetes/parse_test.go @@ -23,6 +23,8 @@ func TestParseRequest(t *testing.T) { {"svc.inter.webs.tests.", "....."}, // bare pod type {"pod.inter.webs.tests.", "....."}, + // SRV request with empty segments + {"..webs.mynamespace.svc.inter.webs.tests.", "...webs.mynamespace.svc"}, } for i, tc := range tests { m := new(dns.Msg)