identifier was sometimes mishashed to the peer. Load balancing during
runtime and pool rebalancing were opposing.
+- An assertion in lease counting relating to reserved leases was repaired.
+
Changes since 3.1.0rc1
- The parse warning that 'deny dyanmic bootp;' must be configured for
if (l->binding_state == FTS_FREE) {
if (i == FREE_LEASES)
p->free_leases++;
- else
+ else if (i != RESERVED_LEASES)
log_fatal("Impossible case "
"at %s:%d.", MDL);
} else if (l->binding_state == FTS_BACKUP) {
if (i == BACKUP_LEASES)
p->backup_leases++;
- else
+ else if (i != RESERVED_LEASES)
log_fatal("Impossible case "
"at %s:%d.", MDL);
}
pool_reference (&pn, nc -> pools, MDL);
do {
struct lease **lptr[RESERVED_LEASES+1];
-
+
if (pn) {
pool_reference (&pc, pn, MDL);
pool_dereference (&pn, MDL);
pool_reference (&pn, pc -> next, MDL);
pool_dereference (&pc -> next, MDL);
}
-
+
lptr [FREE_LEASES] = &pc -> free;
lptr [ACTIVE_LEASES] = &pc -> active;
lptr [EXPIRED_LEASES] = &pc -> expired;