aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin/rewrite/edns0.go5
-rw-r--r--plugin/rewrite/rewrite_test.go4
2 files changed, 6 insertions, 3 deletions
diff --git a/plugin/rewrite/edns0.go b/plugin/rewrite/edns0.go
index 074dd3ebf..e97f04d95 100644
--- a/plugin/rewrite/edns0.go
+++ b/plugin/rewrite/edns0.go
@@ -203,7 +203,10 @@ func (rule *edns0VariableRule) ruleData(ctx context.Context, state request.Reque
fetcher := metadata.ValueFunc(ctx, rule.variable[1:len(rule.variable)-1])
if fetcher != nil {
- return []byte(fetcher()), nil
+ value := fetcher()
+ if len(value) > 0 {
+ return []byte(value), nil
+ }
}
return nil, fmt.Errorf("unable to extract data for variable %s", rule.variable)
diff --git a/plugin/rewrite/rewrite_test.go b/plugin/rewrite/rewrite_test.go
index f70933c3c..670467664 100644
--- a/plugin/rewrite/rewrite_test.go
+++ b/plugin/rewrite/rewrite_test.go
@@ -523,8 +523,8 @@ func TestRewriteEDNS0LocalVariable(t *testing.T) {
{
[]dns.EDNS0{},
[]string{"local", "set", "0xffee", "{test/empty}"},
- []dns.EDNS0{&dns.EDNS0_LOCAL{Code: 0xffee, Data: []byte("")}},
- true,
+ nil,
+ false,
},
{
[]dns.EDNS0{},