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 { if err := loadLeases(handler, "/perm/dhcp4d/leases.json"); err != nil {
return err 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) b, err := json.Marshal(leases)
if err != nil { if err != nil {
errs <- err errs <- err

View File

@ -43,7 +43,7 @@ type Handler struct {
timeNow func() time.Time timeNow func() time.Time
// Leases is called whenever a new lease is handed out // 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) { 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.leasesIP[leaseNum] = lease
h.leasesHW[lease.HardwareAddr] = lease h.leasesHW[lease.HardwareAddr] = lease
log.Printf("handed out lease %+v (ip bytes: %#v)", lease, lease.Addr)
if h.Leases != nil { if h.Leases != nil {
var leases []*Lease var leases []*Lease
for _, l := range h.leasesIP { for _, l := range h.leasesIP {
leases = append(leases, l) leases = append(leases, l)
} }
h.Leases(leases) h.Leases(leases, lease)
} }
return dhcp4.ReplyPacket(p, dhcp4.ACK, h.serverIP, reqIP, h.leasePeriod, return dhcp4.ReplyPacket(p, dhcp4.ACK, h.serverIP, reqIP, h.leasePeriod,
h.options.SelectOrderOrAll(options[dhcp4.OptionParameterRequestList])) h.options.SelectOrderOrAll(options[dhcp4.OptionParameterRequestList]))

View File

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