mirror of
https://github.com/coredns/coredns.git
synced 2025-10-31 18:23:13 -04:00
Nil SOA causes panic if we compare it to incoming SOA (#291)
This commit is contained in:
committed by
Miek Gieben
parent
15297c8e63
commit
ec485a74d3
@@ -88,6 +88,9 @@ Transfer:
|
|||||||
if serial == -1 {
|
if serial == -1 {
|
||||||
return false, Err
|
return false, Err
|
||||||
}
|
}
|
||||||
|
if z.Apex.SOA == nil {
|
||||||
|
return true, Err
|
||||||
|
}
|
||||||
return less(z.Apex.SOA.Serial, uint32(serial)), Err
|
return less(z.Apex.SOA.Serial, uint32(serial)), Err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -84,9 +84,17 @@ func TestShouldTransfer(t *testing.T) {
|
|||||||
z.origin = testZone
|
z.origin = testZone
|
||||||
z.TransferFrom = []string{addrstr}
|
z.TransferFrom = []string{addrstr}
|
||||||
|
|
||||||
|
// when we have a nil SOA (initial state)
|
||||||
|
should, err := z.shouldTransfer()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("unable to run shouldTransfer: %v", err)
|
||||||
|
}
|
||||||
|
if !should {
|
||||||
|
t.Fatalf("shouldTransfer should return true for serial: %d", soa.serial)
|
||||||
|
}
|
||||||
// Serial smaller
|
// Serial smaller
|
||||||
z.Apex.SOA = test.SOA(fmt.Sprintf("%s IN SOA bla. bla. %d 0 0 0 0 ", testZone, soa.serial-1))
|
z.Apex.SOA = test.SOA(fmt.Sprintf("%s IN SOA bla. bla. %d 0 0 0 0 ", testZone, soa.serial-1))
|
||||||
should, err := z.shouldTransfer()
|
should, err = z.shouldTransfer()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unable to run shouldTransfer: %v", err)
|
t.Fatalf("unable to run shouldTransfer: %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user