2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-31 14:25:41 +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

@@ -34,7 +34,7 @@
#ifndef lint
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 */
#include "dhcpd.h"
@@ -1920,6 +1920,19 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp)
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);
}
}