mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-09-02 07:15:44 +00:00
In supersede_lease, replace 'on' statements if new values are provided.
This commit is contained in:
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char copyright[] =
|
static char copyright[] =
|
||||||
"$Id: memory.c,v 1.59 1999/09/16 05:12:33 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
|
"$Id: memory.c,v 1.60 1999/09/22 17:24:11 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
#include "dhcpd.h"
|
#include "dhcpd.h"
|
||||||
@@ -756,6 +756,31 @@ int supersede_lease (comp, lease, commit)
|
|||||||
comp -> hardware_addr = lease -> hardware_addr;
|
comp -> hardware_addr = lease -> hardware_addr;
|
||||||
comp -> flags = ((lease -> flags & ~PERSISTENT_FLAGS) |
|
comp -> flags = ((lease -> flags & ~PERSISTENT_FLAGS) |
|
||||||
(comp -> flags & ~EPHEMERAL_FLAGS));
|
(comp -> flags & ~EPHEMERAL_FLAGS));
|
||||||
|
|
||||||
|
if (lease -> on_expiry) {
|
||||||
|
if (comp -> on_expiry)
|
||||||
|
executable_statement_dereference (&comp -> on_expiry,
|
||||||
|
"supersede_lease");
|
||||||
|
executable_statement_reference (&comp -> on_expiry,
|
||||||
|
lease -> on_expiry,
|
||||||
|
"supersede_lease");
|
||||||
|
}
|
||||||
|
if (lease -> on_commit) {
|
||||||
|
if (comp -> on_commit)
|
||||||
|
executable_statement_dereference (&comp -> on_commit,
|
||||||
|
"supersede_lease");
|
||||||
|
executable_statement_reference (&comp -> on_commit,
|
||||||
|
lease -> on_commit,
|
||||||
|
"supersede_lease");
|
||||||
|
}
|
||||||
|
if (lease -> on_release) {
|
||||||
|
if (comp -> on_release)
|
||||||
|
executable_statement_dereference (&comp -> on_release,
|
||||||
|
"supersede_lease");
|
||||||
|
executable_statement_reference (&comp -> on_release,
|
||||||
|
lease -> on_release,
|
||||||
|
"supersede_lease");
|
||||||
|
}
|
||||||
|
|
||||||
/* Record the lease in the uid hash if necessary. */
|
/* Record the lease in the uid hash if necessary. */
|
||||||
if (enter_uid && lease -> uid) {
|
if (enter_uid && lease -> uid) {
|
||||||
|
Reference in New Issue
Block a user