aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--middleware/file/secondary.go3
-rw-r--r--middleware/file/secondary_test.go10
2 files changed, 12 insertions, 1 deletions
diff --git a/middleware/file/secondary.go b/middleware/file/secondary.go
index 6f5d9ef4a..70ec217f7 100644
--- a/middleware/file/secondary.go
+++ b/middleware/file/secondary.go
@@ -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
}
diff --git a/middleware/file/secondary_test.go b/middleware/file/secondary_test.go
index b32c7aca7..6f45a61bb 100644
--- a/middleware/file/secondary_test.go
+++ b/middleware/file/secondary_test.go
@@ -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)
}