mirror of
				https://github.com/coredns/coredns.git
				synced 2025-11-03 18:53:13 -05:00 
			
		
		
		
	- compliance with metadata contract. If metadata value is empty, ignore rewrite - like if metadata does not exist. (#1953)
This commit is contained in:
		
				
					committed by
					
						
						Paul Greenberg
					
				
			
			
				
	
			
			
			
						parent
						
							7745462430
						
					
				
				
					commit
					b3a92f1622
				
			@@ -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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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{},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user