diff options
author | Thomas Markwalder <tmark@isc.org> | 2014-11-19 10:56:17 -0500 |
---|---|---|
committer | Thomas Markwalder <tmark@isc.org> | 2014-11-19 10:56:17 -0500 |
commit | d9b2a590e835ec9d27f4c059ee07893b1acca110 (patch) | |
tree | 538d4aa08c64eb745c9d392f42f457b17700ba1e /server/ddns.c | |
parent | 21d3034757a2e33cfea31f93b8585b20e8a22bbe (diff) | |
download | isc-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.c | 16 |
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, |