summaryrefslogtreecommitdiff
path: root/server/ddns.c
diff options
context:
space:
mode:
authorThomas Markwalder <tmark@isc.org>2014-11-19 10:56:17 -0500
committerThomas Markwalder <tmark@isc.org>2014-11-19 10:56:17 -0500
commitd9b2a590e835ec9d27f4c059ee07893b1acca110 (patch)
tree538d4aa08c64eb745c9d392f42f457b17700ba1e /server/ddns.c
parent21d3034757a2e33cfea31f93b8585b20e8a22bbe (diff)
downloadisc-dhcp-d9b2a590e835ec9d27f4c059ee07893b1acca110.tar.gz
[master] Host declaration name can now be used in DNS forward name
Merges in rt21323.
Diffstat (limited to 'server/ddns.c')
-rw-r--r--server/ddns.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/server/ddns.c b/server/ddns.c
index 6cbd3e3d..b5827870 100644
--- a/server/ddns.c
+++ b/server/ddns.c
@@ -221,6 +221,22 @@ ddns_updates(struct packet *packet, struct lease *lease, struct lease *old,
else
s1 = 0;
+ /* If we don't have a host name based on ddns-hostname then use
+ * the host declaration name if there is one and use-host-decl-names
+ * is turned on. */
+ if ((s1 == 0) && (lease && lease->host && lease->host->name)) {
+ oc = lookup_option(&server_universe, options,
+ SV_USE_HOST_DECL_NAMES);
+ if (evaluate_boolean_option_cache(NULL, packet, lease,
+ NULL, packet->options,
+ options, scope, oc, MDL)) {
+ s1 = ((data_string_new(&ddns_hostname,
+ lease->host->name,
+ strlen(lease->host->name),
+ MDL) && ddns_hostname.len > 0));
+ }
+ }
+
oc = lookup_option(&server_universe, options, SV_DDNS_DOMAIN_NAME);
if (oc)
s2 = evaluate_option_cache(&ddns_domainname, packet, lease,