diff options
author | Ted Lemon <source@isc.org> | 2001-04-27 21:32:48 +0000 |
---|---|---|
committer | Ted Lemon <source@isc.org> | 2001-04-27 21:32:48 +0000 |
commit | 225fed9174edb105d317787e3df5edba5df51f4c (patch) | |
tree | 918884e0681ac2f18e29f2686e2cf3bb6c2b2332 | |
parent | 9750d9ca6284b0b760286f7b4f1d31437206e160 (diff) | |
download | isc-dhcp-225fed9174edb105d317787e3df5edba5df51f4c.tar.gz |
Fix some host references.
-rw-r--r-- | server/dhcp.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/server/dhcp.c b/server/dhcp.c index ca611b9a..8bf409e1 100644 --- a/server/dhcp.c +++ b/server/dhcp.c @@ -43,7 +43,7 @@ #ifndef lint static char copyright[] = -"$Id: dhcp.c,v 1.190 2001/04/18 18:58:39 mellon Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n"; +"$Id: dhcp.c,v 1.191 2001/04/27 21:32:48 mellon Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -1619,7 +1619,7 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp) break; } if (h) - host_reference (&lease -> host, hp, MDL); + host_reference (&lease -> host, h, MDL); } if (hp) host_dereference (&hp, MDL); @@ -3250,11 +3250,22 @@ int find_lease (struct lease **lp, hang it off the lease so that we can use the supplied options. */ if (lease && host && !lease -> host) { - for (; host; host = host -> n_ipaddr) { - if (!host -> fixed_addr) { - host_reference (&lease -> host, host, MDL); + struct host_decl *p = (struct host_decl *)0; + struct host_decl *n = (struct host_decl *)0; + host_reference (&p, host, MDL); + while (p) { + if (!p -> fixed_addr) { + host_reference (&lease -> host, p, MDL); + host_dereference (&p, MDL); break; } + if (p -> n_ipaddr) + host_reference (&n, p -> n_ipaddr, MDL); + host_dereference (&p, MDL); + if (n) { + host_reference (&p, n, MDL); + host_dereference (&n, MDL); + } } } |