dhcp4d: log in leases callback

This commit is contained in:
Michael Stapelberg 2018-06-24 11:56:39 +02:00
parent 57564e15d0
commit ae15230da3
3 changed files with 5 additions and 5 deletions

View File

@ -46,7 +46,8 @@ func logic() error {
if err := loadLeases(handler, "/perm/dhcp4d/leases.json"); err != nil {
return err
}
handler.Leases = func(leases []*dhcp4d.Lease) {
handler.Leases = func(leases []*dhcp4d.Lease, latest *dhcp4d.Lease) {
log.Printf("DHCPACK %+v", latest)
b, err := json.Marshal(leases)
if err != nil {
errs <- err

View File

@ -43,7 +43,7 @@ type Handler struct {
timeNow func() time.Time
// Leases is called whenever a new lease is handed out
Leases func([]*Lease)
Leases func([]*Lease, *Lease)
}
func NewHandler(dir string, iface *net.Interface, conn net.PacketConn) (*Handler, error) {
@ -250,13 +250,12 @@ func (h *Handler) serveDHCP(p dhcp4.Packet, msgType dhcp4.MessageType, options d
h.leasesIP[leaseNum] = lease
h.leasesHW[lease.HardwareAddr] = lease
log.Printf("handed out lease %+v (ip bytes: %#v)", lease, lease.Addr)
if h.Leases != nil {
var leases []*Lease
for _, l := range h.leasesIP {
leases = append(leases, l)
}
h.Leases(leases)
h.Leases(leases, lease)
}
return dhcp4.ReplyPacket(p, dhcp4.ACK, h.serverIP, reqIP, h.leasePeriod,
h.options.SelectOrderOrAll(options[dhcp4.OptionParameterRequestList]))

View File

@ -87,7 +87,7 @@ func TestLease(t *testing.T) {
hostname = "xps"
)
leasedCalled := false
handler.Leases = func(leases []*Lease) {
handler.Leases = func(leases []*Lease, latest *Lease) {
if got, want := len(leases), 1; got != want {
t.Fatalf("unexpected number of leases: got %d, want %d", got, want)
}