- DHCP: normalize leases on startup (prioritize static leases over dynamic)

This commit is contained in:
Simon Zolin
2019-12-03 19:24:30 +03:00
parent 07a9c3bd45
commit 906f26d7d2
2 changed files with 70 additions and 2 deletions

View File

@@ -8,6 +8,7 @@ import (
"time"
"github.com/krolaw/dhcp4"
"github.com/stretchr/testify/assert"
)
func check(t *testing.T, result bool, msg string) {
@@ -211,3 +212,32 @@ func TestIsValidSubnetMask(t *testing.T) {
t.Fatalf("isValidSubnetMask([]byte{255,255,253,0})")
}
}
func TestNormalizeLeases(t *testing.T) {
dynLeases := []*Lease{}
staticLeases := []*Lease{}
leases := []*Lease{}
lease := &Lease{}
lease.HWAddr = []byte{1, 2, 3, 4}
dynLeases = append(dynLeases, lease)
lease = new(Lease)
lease.HWAddr = []byte{1, 2, 3, 5}
dynLeases = append(dynLeases, lease)
lease = new(Lease)
lease.HWAddr = []byte{1, 2, 3, 4}
lease.IP = []byte{0, 2, 3, 4}
staticLeases = append(staticLeases, lease)
lease = new(Lease)
lease.HWAddr = []byte{2, 2, 3, 4}
staticLeases = append(staticLeases, lease)
leases = normalizeLeases(staticLeases, dynLeases)
assert.True(t, len(leases) == 3)
assert.True(t, bytes.Equal(leases[0].HWAddr, []byte{1, 2, 3, 4}))
assert.True(t, bytes.Equal(leases[0].IP, []byte{0, 2, 3, 4}))
assert.True(t, bytes.Equal(leases[1].HWAddr, []byte{2, 2, 3, 4}))
assert.True(t, bytes.Equal(leases[2].HWAddr, []byte{1, 2, 3, 5}))
}