Changes since 3.1.0b1
+- A new server config option "fqdn-reply" specifies whether the server
+ should send out option 81 (FQDN). Defaults to "on". If set to "off",
+ the FQDN option is not sent, even if the client requested it. This is
+ needed because some clients misbehave otherwise. Thanks to Christof Chen
+ at Allianz.
+
- Allow trace output files (-tf option) to be overwritten, rather than
crashing dhcpd if the file already exists
#define SV_LEASEQUERY 49
#define SV_ADAPTIVE_LEASE_TIME_THRESHOLD 50
#define SV_DO_REVERSE_UPDATES 51
+#define SV_FQDN_REPLY 52
#if !defined (DEFAULT_PING_TIMEOUT)
# define DEFAULT_PING_TIMEOUT 1
#ifndef lint
static char copyright[] =
-"$Id: ddns.c,v 1.25 2007/04/03 16:46:03 dhankins Exp $ Copyright (c) 2004-2007 Internet Systems Consortium. All rights reserved.\n";
+"$Id: ddns.c,v 1.26 2007/04/27 22:48:00 each Exp $ Copyright (c) 2004-2007 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
}
noerror:
+ /*
+ * If fqdn-reply option is disabled in dhcpd.conf, then don't
+ * send the client an FQDN option at all, even if one was requested.
+ * (WinXP clients allegedly misbehave if the option is present,
+ * refusing to handle PTR updates themselves).
+ */
+ if ((oc = lookup_option (&server_universe, state->options,
+ SV_FQDN_REPLY)) &&
+ !evaluate_boolean_option_cache (&ignorep, packet, lease,
+ (struct client_state *)0,
+ packet->options,
+ state->options,
+ &lease->scope, oc, MDL)) {
+ goto badfqdn;
+
/* If we're ignoring client updates, then we tell a sort of 'white
* lie'. We've already updated the name the server wants (per the
* config written by the server admin). Now let the client do as
* We only form an FQDN option this way if the client supplied an
* FQDN option that had FQDN_SERVER_UPDATE set false.
*/
- if (client_ignorep &&
+ } else if (client_ignorep &&
(oc = lookup_option(&fqdn_universe, packet->options,
FQDN_SERVER_UPDATE)) &&
!evaluate_boolean_option_cache(&ignorep, packet, lease, NULL,
#ifndef lint
static char copyright[] =
-"$Id: stables.c,v 1.36 2007/04/03 16:46:03 dhankins Exp $ Copyright (c) 2004-2007 Internet Systems Consortium. All rights reserved.\n";
+"$Id: stables.c,v 1.37 2007/04/27 22:48:00 each Exp $ Copyright (c) 2004-2007 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
{ "leasequery", "f", &server_universe, 49, 1 },
{ "adaptive-lease-time-threshold", "B", &server_universe, 50, 1 },
{ "do-reverse-updates", "f", &server_universe, 51, 1 },
+ { "fqdn-reply", "f", &server_universe, 52, 1 },
{ NULL, NULL, NULL, 0, 0 }
};