active to free states. Leases that belonged to the failover secondary
are moved to BACKUP state rather than FREE upon exiting EXPIRED state.
If lease rebalancing must move leases, it tries first to move leases
that belong to the peer in need.
- The server no longer sends POOLREQ messages unless the pool is severely
misbalanced in the peer's favor (see 'man dhcpd.conf' for more details).
- Pool rebalance events no longer happen upon successfully allocating a
lease. Instead, they happen on a schedule. See 'man dhcpd.conf' for the
min-balance and max-balance statements for more information.
[ISC-Bugs #13308]
- Correctly handle an immediate peer transition to partner-down when we come
up in normal.
- Change 'peer_name' attribute of failover-state object to just 'name'.
- If we make transition from startup to recover_wait, set a timer to
get us to recover_done.
- If peer state update is received, _always_ check to see if we should
do a transition out of startup.
via OMAPI. In addition, attempts to set other fields in a state object
will return success without modifying the object; this is very ugly, but
required to allow an open -> modify -> update sequence of OMAPI operations
to work properly.
immediately responded to, but are placed on a queue (attached to
the dhcp_failover_state_t structure). Updated leases are committed
only when the queue is drained, giving a significant performance
increase.
The toack queue is drained:
a) when the queue size exceeds half the partner's max-unacked-updates
setting, or
b) two seconds after the last update message is received.
Added 'refcnt' and 'next' fields to the failover_message_t structure,
to allow messages to be placed on the toack queue.
On the sending side, leases are no longer committed immediately after
being acked. Rather, the commit is deferred until no further acks are
pending. This also gives a major gain in performance.
its successor doesn't wind up back on the update queue when the lease is
next updated.
- Print the reject reason when a BNDACK includes one, but still remove the
lease from the update queue.
- Don't use the lease to send the BNDACK, since there may not be one locally.
- Support contact message, and inter-message-arrival timeouts.
being correctly reference-counted.
- Make and use object-specific allocators.
- Add reference/dereference support to hash functions and to timeout
functions.