single-threaded system. In all cases, ISC DHCP should now hold fast to
a 1-second timeout, trying only once.
+- The siaddr field was being improperly set to the server-identifier when
+ responding to DHCP messages. RFC2131 clarified the siaddr field as
+ meaning the 'next server in the bootstrap process', eg a tftp server.
+ The siaddr field is now left zeroed unless next-server is configured.
+
Changes since 3.0.2rc3
- A previously undocumented configuration directive, 'local-address',
#ifndef lint
static char copyright[] =
-"$Id: dhcp.c,v 1.192.2.44 2004/11/24 17:39:19 dhankins Exp $ Copyright (c) 2004 Internet Systems Consortium. All rights reserved.\n";
+"$Id: dhcp.c,v 1.192.2.45 2005/02/22 21:11:51 dhankins Exp $ Copyright (c) 2004 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
log_info ("%s", msgbuf);
/* Figure out the address of the boot file server. */
- raw.siaddr = from;
if ((oc =
lookup_option (&server_universe, options, SV_NEXT_SERVER))) {
if (evaluate_option_cache (&d1, packet, (struct lease *)0,
}
/* Figure out the address of the boot file server. */
- memcpy (&state -> siaddr, state -> from.iabuf, sizeof state -> siaddr);
+ memset (&state -> siaddr, 0, sizeof state -> siaddr);
if ((oc =
lookup_option (&server_universe,
state -> options, SV_NEXT_SERVER))) {