2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-09-03 15:56:00 +00:00

- A bug where leases not in ACTIVE state would get billed to billed classes

(classes with lease limitations) was fixed.  Non-active leases OFFERed
  to clients are no longer billed (but billing is checked before offering).
  [ISC-Bugs #16168]
This commit is contained in:
David Hankins
2006-06-15 17:52:06 +00:00
parent 1db5e2c079
commit 1b2ab55fdd
2 changed files with 18 additions and 1 deletions

View File

@@ -123,6 +123,10 @@ and for prodding me into improving it.
misapplied to server values rather than client values. The server no longer misapplied to server values rather than client values. The server no longer
advertises 8-byte lease-time options when on 64-bit platforms. advertises 8-byte lease-time options when on 64-bit platforms.
- A bug where leases not in ACTIVE state would get billed to billed classes
(classes with lease limitations) was fixed. Non-active leases OFFERed
to clients are no longer billed (but billing is checked before offering).
Changes since 3.0.4rc1 Changes since 3.0.4rc1
- The dhcp-options.5 manpage was updated to correct indentation errors - The dhcp-options.5 manpage was updated to correct indentation errors

View File

@@ -34,7 +34,7 @@
#ifndef lint #ifndef lint
static char copyright[] = static char copyright[] =
"$Id: dhcp.c,v 1.204 2006/06/01 20:23:17 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n"; "$Id: dhcp.c,v 1.205 2006/06/15 17:52:06 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */ #endif /* not lint */
#include "dhcpd.h" #include "dhcpd.h"
@@ -1920,6 +1920,19 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp)
return; return;
} }
} }
/* If this is an offer, undo the billing. We go
* through all the steps above to bill a class so
* we can hit the 'no available billing' mark and
* abort without offering. But it just doesn't make
* sense to permanently bill a class for a non-active
* lease. This means on REQUEST, we will bill this
* lease again (if there is a REQUEST).
*/
if (offer == DHCPOFFER &&
lease->billing_class != NULL &&
lease->state != FTS_ACTIVE)
unbill_class(lease, lease->billing_class);
} }
} }