Nil SOA causes panic if we compare it to incoming SOA (#291)

This commit is contained in:
Silas Baronda
2016-09-24 10:51:20 -04:00
committed by Miek Gieben
parent 15297c8e63
commit ec485a74d3
2 changed files with 12 additions and 1 deletions

View File

@@ -88,6 +88,9 @@ Transfer:
if serial == -1 {
return false, Err
}
if z.Apex.SOA == nil {
return true, Err
}
return less(z.Apex.SOA.Serial, uint32(serial)), Err
}

View File

@@ -84,9 +84,17 @@ func TestShouldTransfer(t *testing.T) {
z.origin = testZone
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
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 {
t.Fatalf("unable to run shouldTransfer: %v", err)
}