ping-check-hook update HA peer(s) with lease declinations
The design overlooked how HA update peers will be updated when leases are declined. The initial release may simply state the hook is experimental and doesn't work with HA.
Proposed solution:
Leases are marked decline via a function added to support ping-checking, Dhcpv4Srv::serverDecline(). This function gets invoked by the unpark callback if ping-check concluded the address is unavailable (i.e. in use).
In order to propagate the declination to HA peers, a new hook point will be added within this function, "lease4-server-decline". This affords any hook library with an opportunity to take an action when the server declines a lease. There is already a "lease4-decline" hook point but this is for leases that are declined by clients via DHCPDECLINEs.
HA will need to implement a callout handler for this hook point which propagates the update to the appropriate peer(s). Unlike updates done via leases4_committed, there is no outbound response pending and thus no need to park the query. Nor is there any need to wait for the updates to be acknowledged.