diff options
author | David Hankins <dhankins@isc.org> | 2009-01-30 22:32:29 +0000 |
---|---|---|
committer | David Hankins <dhankins@isc.org> | 2009-01-30 22:32:29 +0000 |
commit | 8466a0353ff373c805c6a2aaa5ab257ccd5a7ae4 (patch) | |
tree | 286de9c85416b86805daef7858094fc6e2508417 /server | |
parent | ae36487bd3f365f083a6670877f8696a2245234b (diff) | |
download | isc-dhcp-8466a0353ff373c805c6a2aaa5ab257ccd5a7ae4.tar.gz |
- Using reserved leases no longer results in 'lease with binding state
free not on its queue' error messages, thanks to a patch from Frode
Nordahl. [ISC-Bugs #19274]
Diffstat (limited to 'server')
-rw-r--r-- | server/mdb.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/server/mdb.c b/server/mdb.c index 42b3abc6..004e94ad 100644 --- a/server/mdb.c +++ b/server/mdb.c @@ -1236,9 +1236,12 @@ int supersede_lease (comp, lease, commit, propogate, pimmediate) /* Figure out which queue it's on. */ switch (comp -> binding_state) { case FTS_FREE: - lq = &comp -> pool -> free; - if (!(comp->flags & RESERVED_LEASE)) + if (comp->flags & RESERVED_LEASE) + lq = &comp->pool->reserved; + else { + lq = &comp->pool->free; comp->pool->free_leases--; + } #if defined(FAILOVER_PROTOCOL) do_pool_check = 1; @@ -1260,9 +1263,12 @@ int supersede_lease (comp, lease, commit, propogate, pimmediate) break; case FTS_BACKUP: - lq = &comp -> pool -> backup; - if (!(comp->flags & RESERVED_LEASE)) + if (comp->flags & RESERVED_LEASE) + lq = &comp->pool->reserved; + else { + lq = &comp->pool->backup; comp->pool->backup_leases--; + } #if defined(FAILOVER_PROTOCOL) do_pool_check = 1; |