- UPDREQ/UPDREQALL handling was optimized - it no longer dequeues and
requeues all pending updates. This should reduce the number of spurious
- 'xid mismatch' log mesasges.
+ 'xid mismatch' log messages.
+
+- An option definition referencing leak was fixed, which resulted in early
+ termination of dhclient upon the renewal event.
Changes since 3.0 (New Features)
#ifndef lint
static char copyright[] =
-"$Id: options.c,v 1.99 2006/08/24 14:58:55 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
+"$Id: options.c,v 1.100 2006/10/17 20:45:59 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#define DHCP_OPTION_DATA
break;
}
}
- noc -> option = oc -> option;
+ option_reference(&(noc->option), oc->option, MDL);
save_option (universe, options, noc);
option_cache_dereference (&noc, MDL);
break;
return 0;
}
- oc->option = option;
+ option_reference(&(oc->option), option, MDL);
save_option(&dhcp_universe, options, oc);
option_cache_dereference(&oc, MDL);
#ifndef lint
static char copyright[] =
-"$Id: tree.c,v 1.108 2006/07/31 22:19:51 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
+"$Id: tree.c,v 1.109 2006/10/17 20:45:59 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
(*oc) -> data.terminated = 0;
if (data)
memcpy (&bp -> data [0], data, len);
- (*oc) -> option = option;
+ option_reference(&((*oc)->option), option, MDL);
return 1;
}
#ifndef lint
static char copyright[] =
-"$Id: dhcp.c,v 1.212 2006/08/22 17:13:25 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
+"$Id: dhcp.c,v 1.213 2006/10/17 20:45:59 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
expression_reference (&noc -> expression,
oc -> expression, MDL);
if (oc -> option)
- noc -> option = oc -> option;
+ option_reference(&(noc->option), oc->option,
+ MDL);
}
save_option (&dhcp_universe, state -> options, noc);