mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -04:00 
			
		
		
		
	* Implement notifies for transfer plugin (#3972) * Fix notifies in transfer plugin Signed-off-by: Miek Gieben <miek@miek.nl> * Make it compile Signed-off-by: Miek Gieben <miek@miek.nl> * Port more plugins Signed-off-by: Miek Gieben <miek@miek.nl> * golint Signed-off-by: Miek Gieben <miek@miek.nl> * Fix tests Signed-off-by: Miek Gieben <miek@miek.nl> * Fix notifies in transfer plugin Signed-off-by: Miek Gieben <miek@miek.nl> * Make it compile Signed-off-by: Miek Gieben <miek@miek.nl> * Port more plugins Signed-off-by: Miek Gieben <miek@miek.nl> * golint Signed-off-by: Miek Gieben <miek@miek.nl> * Fix tests Signed-off-by: Miek Gieben <miek@miek.nl> * Fix tests Signed-off-by: Miek Gieben <miek@miek.nl> * really fix test Signed-off-by: Miek Gieben <miek@miek.nl> * Implement ixfr fallback and unify file and auto for transfering Signed-off-by: Miek Gieben <miek@miek.nl> * Add transfer tests copied and modified from #3452 Signed-off-by: Miek Gieben <miek@miek.nl> * Test correct selection of plugin Signed-off-by: Miek Gieben <miek@miek.nl> * add upstream back in Signed-off-by: Miek Gieben <miek@miek.nl> * Implement ixfr fallback and unify file and auto for transfering Signed-off-by: Miek Gieben <miek@miek.nl> * fix test Signed-off-by: Miek Gieben <miek@miek.nl> * properly merge Signed-off-by: Miek Gieben <miek@miek.nl> * Remove plugin/kubernetes/setup_transfer_test.go Signed-off-by: Yong Tang <yong.tang.github@outlook.com> Co-authored-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
		
							
								
								
									
										58
									
								
								plugin/transfer/select_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								plugin/transfer/select_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| package transfer | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 	"testing" | ||||
|  | ||||
| 	"github.com/coredns/coredns/plugin/pkg/dnstest" | ||||
| 	"github.com/coredns/coredns/plugin/test" | ||||
|  | ||||
| 	"github.com/miekg/dns" | ||||
| ) | ||||
|  | ||||
| type ( | ||||
| 	t1 struct{} | ||||
| 	t2 struct{} | ||||
| ) | ||||
|  | ||||
| func (t t1) Transfer(zone string, serial uint32) (<-chan []dns.RR, error) { | ||||
| 	const z = "example.org." | ||||
| 	if zone != z { | ||||
| 		return nil, ErrNotAuthoritative | ||||
| 	} | ||||
| 	return nil, fmt.Errorf(z) | ||||
| } | ||||
| func (t t2) Transfer(zone string, serial uint32) (<-chan []dns.RR, error) { | ||||
| 	const z = "sub.example.org." | ||||
| 	if zone != z { | ||||
| 		return nil, ErrNotAuthoritative | ||||
| 	} | ||||
| 	return nil, fmt.Errorf(z) | ||||
| } | ||||
|  | ||||
| func TestZoneSelection(t *testing.T) { | ||||
| 	tr := &Transfer{ | ||||
| 		Transferers: []Transferer{t1{}, t2{}}, | ||||
| 		xfrs: []*xfr{ | ||||
| 			{ | ||||
| 				Zones: []string{"example.org."}, | ||||
| 				to:    []string{"192.0.2.1"}, // RFC 5737 IP, no interface should have this address. | ||||
| 			}, | ||||
| 			{ | ||||
| 				Zones: []string{"sub.example.org."}, | ||||
| 				to:    []string{"*"}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| 	r := new(dns.Msg) | ||||
| 	r.SetAxfr("sub.example.org.") | ||||
| 	w := dnstest.NewRecorder(&test.ResponseWriter{}) | ||||
| 	_, err := tr.ServeDNS(context.TODO(), w, r) | ||||
| 	if err == nil { | ||||
| 		t.Fatal("Expected error, got nil") | ||||
| 	} | ||||
| 	if x := err.Error(); x != "sub.example.org." { | ||||
| 		t.Errorf("Expected transfer for zone %s, got %s", "sub.example.org", x) | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user