summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorThomas Markwalder <tmark@isc.org>2019-11-22 13:39:45 -0500
committerThomas Markwalder <tmark@isc.org>2019-11-22 13:39:45 -0500
commit0cd94b5ef4a078097fc2bd1dc72f5e80c2cf1844 (patch)
treee4dfe9a92d676a49b18ab547d781fb3fb10c8e6a /server
parent97c155273c0df0c8518f226e2b5e338e3ad63e87 (diff)
downloadisc-dhcp-0cd94b5ef4a078097fc2bd1dc72f5e80c2cf1844.tar.gz
[#64,!35] Restored work
Restored cummulative work.
Diffstat (limited to 'server')
-rw-r--r--server/Makefile.in143
-rw-r--r--server/class.c3
-rw-r--r--server/confpars.c35
-rw-r--r--server/ddns.c5
-rw-r--r--server/dhcp.c8
-rw-r--r--server/dhcpleasequery.c12
-rw-r--r--server/dhcpv6.c20
-rw-r--r--server/mdb.c116
-rw-r--r--server/mdb6.c2
-rw-r--r--server/tests/Makefile.in154
10 files changed, 327 insertions, 171 deletions
diff --git a/server/Makefile.in b/server/Makefile.in
index 08e2774a..1a4171e2 100644
--- a/server/Makefile.in
+++ b/server/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -136,7 +136,18 @@ am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/dhcpd-bootp.Po \
+ ./$(DEPDIR)/dhcpd-class.Po ./$(DEPDIR)/dhcpd-confpars.Po \
+ ./$(DEPDIR)/dhcpd-db.Po ./$(DEPDIR)/dhcpd-ddns.Po \
+ ./$(DEPDIR)/dhcpd-dhcp.Po ./$(DEPDIR)/dhcpd-dhcpd.Po \
+ ./$(DEPDIR)/dhcpd-dhcpleasequery.Po \
+ ./$(DEPDIR)/dhcpd-dhcpv6.Po ./$(DEPDIR)/dhcpd-failover.Po \
+ ./$(DEPDIR)/dhcpd-ldap.Po ./$(DEPDIR)/dhcpd-ldap_casa.Po \
+ ./$(DEPDIR)/dhcpd-ldap_krb_helper.Po \
+ ./$(DEPDIR)/dhcpd-leasechain.Po ./$(DEPDIR)/dhcpd-mdb.Po \
+ ./$(DEPDIR)/dhcpd-mdb6.Po ./$(DEPDIR)/dhcpd-omapi.Po \
+ ./$(DEPDIR)/dhcpd-salloc.Po ./$(DEPDIR)/dhcpd-stables.Po
am__mv = mv -f
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -208,7 +219,7 @@ am__recursive_targets = \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- distdir
+ distdir distdir-am
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
@@ -422,8 +433,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -487,25 +498,31 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-bootp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-class.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-confpars.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-db.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-ddns.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-dhcp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-dhcpd.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-dhcpleasequery.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-dhcpv6.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-failover.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-ldap.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-ldap_casa.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-ldap_krb_helper.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-leasechain.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-mdb.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-mdb6.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-omapi.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-salloc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-stables.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-bootp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-class.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-confpars.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-db.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-ddns.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-dhcp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-dhcpd.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-dhcpleasequery.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-dhcpv6.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-failover.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-ldap.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-ldap_casa.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-ldap_krb_helper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-leasechain.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-mdb.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-mdb6.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-omapi.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-salloc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd-stables.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -993,7 +1010,10 @@ cscopelist-am: $(am__tagged_files)
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -1091,7 +1111,25 @@ clean: clean-recursive
clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
distclean: distclean-recursive
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/dhcpd-bootp.Po
+ -rm -f ./$(DEPDIR)/dhcpd-class.Po
+ -rm -f ./$(DEPDIR)/dhcpd-confpars.Po
+ -rm -f ./$(DEPDIR)/dhcpd-db.Po
+ -rm -f ./$(DEPDIR)/dhcpd-ddns.Po
+ -rm -f ./$(DEPDIR)/dhcpd-dhcp.Po
+ -rm -f ./$(DEPDIR)/dhcpd-dhcpd.Po
+ -rm -f ./$(DEPDIR)/dhcpd-dhcpleasequery.Po
+ -rm -f ./$(DEPDIR)/dhcpd-dhcpv6.Po
+ -rm -f ./$(DEPDIR)/dhcpd-failover.Po
+ -rm -f ./$(DEPDIR)/dhcpd-ldap.Po
+ -rm -f ./$(DEPDIR)/dhcpd-ldap_casa.Po
+ -rm -f ./$(DEPDIR)/dhcpd-ldap_krb_helper.Po
+ -rm -f ./$(DEPDIR)/dhcpd-leasechain.Po
+ -rm -f ./$(DEPDIR)/dhcpd-mdb.Po
+ -rm -f ./$(DEPDIR)/dhcpd-mdb6.Po
+ -rm -f ./$(DEPDIR)/dhcpd-omapi.Po
+ -rm -f ./$(DEPDIR)/dhcpd-salloc.Po
+ -rm -f ./$(DEPDIR)/dhcpd-stables.Po
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -1137,7 +1175,25 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/dhcpd-bootp.Po
+ -rm -f ./$(DEPDIR)/dhcpd-class.Po
+ -rm -f ./$(DEPDIR)/dhcpd-confpars.Po
+ -rm -f ./$(DEPDIR)/dhcpd-db.Po
+ -rm -f ./$(DEPDIR)/dhcpd-ddns.Po
+ -rm -f ./$(DEPDIR)/dhcpd-dhcp.Po
+ -rm -f ./$(DEPDIR)/dhcpd-dhcpd.Po
+ -rm -f ./$(DEPDIR)/dhcpd-dhcpleasequery.Po
+ -rm -f ./$(DEPDIR)/dhcpd-dhcpv6.Po
+ -rm -f ./$(DEPDIR)/dhcpd-failover.Po
+ -rm -f ./$(DEPDIR)/dhcpd-ldap.Po
+ -rm -f ./$(DEPDIR)/dhcpd-ldap_casa.Po
+ -rm -f ./$(DEPDIR)/dhcpd-ldap_krb_helper.Po
+ -rm -f ./$(DEPDIR)/dhcpd-leasechain.Po
+ -rm -f ./$(DEPDIR)/dhcpd-mdb.Po
+ -rm -f ./$(DEPDIR)/dhcpd-mdb6.Po
+ -rm -f ./$(DEPDIR)/dhcpd-omapi.Po
+ -rm -f ./$(DEPDIR)/dhcpd-salloc.Po
+ -rm -f ./$(DEPDIR)/dhcpd-stables.Po
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -1160,21 +1216,22 @@ uninstall-man: uninstall-man5 uninstall-man8
.MAKE: $(am__recursive_targets) install-am install-strip
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
- check-am clean clean-generic clean-sbinPROGRAMS cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-dist_sysconfDATA install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man5 \
- install-man8 install-pdf install-pdf-am install-ps \
- install-ps-am install-sbinPROGRAMS install-strip installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am uninstall-dist_sysconfDATA uninstall-man \
- uninstall-man5 uninstall-man8 uninstall-sbinPROGRAMS
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--depfiles check check-am clean clean-generic \
+ clean-sbinPROGRAMS cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dist_sysconfDATA \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-man5 install-man8 install-pdf \
+ install-pdf-am install-ps install-ps-am install-sbinPROGRAMS \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+ ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-dist_sysconfDATA uninstall-man uninstall-man5 \
+ uninstall-man8 uninstall-sbinPROGRAMS
.PRECIOUS: Makefile
diff --git a/server/class.c b/server/class.c
index 70904978..dc7737f2 100644
--- a/server/class.c
+++ b/server/class.c
@@ -174,7 +174,6 @@ int check_collection (packet, lease, collection)
}
data_string_copy (&nc -> hash_string, &data,
MDL);
- data_string_forget (&data, MDL);
if (!class -> hash)
class_new_hash(&class->hash,
SCLASS_HASH_SIZE, MDL);
@@ -186,6 +185,8 @@ int check_collection (packet, lease, collection)
classify (packet, nc);
class_dereference (&nc, MDL);
}
+
+ data_string_forget (&data, MDL);
}
}
return matched;
diff --git a/server/confpars.c b/server/confpars.c
index 7ad28d55..4f0b58ee 100644
--- a/server/confpars.c
+++ b/server/confpars.c
@@ -775,8 +775,11 @@ int parse_statement (cfile, group, type, host_decl, declaration)
et = (struct executable_statement *)0;
if (!parse_option_statement
(&et, cfile, 1, option,
- supersede_option_statement))
+ supersede_option_statement)) {
+ option_dereference(&option, MDL);
return declaration;
+ }
+
option_dereference(&option, MDL);
goto insert_statement;
} else
@@ -2048,12 +2051,15 @@ void parse_host_declaration (cfile, group)
unsigned len;
skip_token(&val, (unsigned *)0, cfile);
- data_string_forget (&host -> client_identifier, MDL);
-
if (host->client_identifier.len != 0) {
- parse_warn(cfile, "Host %s already has a "
- "client identifier.",
- host->name);
+ char buf[256];
+ print_hex_or_string(host->client_identifier.len,
+ host->client_identifier.data,
+ sizeof(buf) - 1, buf);
+ parse_warn(cfile,
+ "Host '%s' already has a uid '%s'",
+ host->name, buf);
+ skip_to_rbrace(cfile, 1);
break;
}
@@ -2795,6 +2801,7 @@ void parse_subnet_declaration (cfile, share)
if (token != NETMASK) {
parse_warn (cfile, "Expecting netmask");
skip_to_semi (cfile);
+ subnet_dereference (&subnet, MDL);
return;
}
@@ -2898,6 +2905,7 @@ parse_subnet6_declaration(struct parse *cfile, struct shared_network *share) {
token = next_token(&val, NULL, cfile);
if (token != SLASH) {
parse_warn(cfile, "Expecting a '/'.");
+ subnet_dereference(&subnet, MDL);
skip_to_semi(cfile);
return;
}
@@ -2905,6 +2913,7 @@ parse_subnet6_declaration(struct parse *cfile, struct shared_network *share) {
token = next_token(&val, NULL, cfile);
if (token != NUMBER) {
parse_warn(cfile, "Expecting a number.");
+ subnet_dereference(&subnet, MDL);
skip_to_semi(cfile);
return;
}
@@ -2914,12 +2923,14 @@ parse_subnet6_declaration(struct parse *cfile, struct shared_network *share) {
(subnet->prefix_len > 128) ||
(*endp != '\0')) {
parse_warn(cfile, "Expecting a number between 0 and 128.");
+ subnet_dereference(&subnet, MDL);
skip_to_semi(cfile);
return;
}
if (!is_cidr_mask_valid(&subnet->net, subnet->prefix_len)) {
parse_warn(cfile, "New subnet mask too short.");
+ subnet_dereference(&subnet, MDL);
skip_to_semi(cfile);
return;
}
@@ -3578,6 +3589,11 @@ int parse_lease_declaration (struct lease **lp, struct parse *cfile)
if (token != EQUAL) {
parse_warn (cfile,
"expecting '=' in set statement.");
+ binding_value_dereference(&nv, MDL);
+ if (newbinding) {
+ dfree(binding->name, MDL);
+ dfree(binding, MDL);
+ }
goto badset;
}
}
@@ -3585,6 +3601,10 @@ int parse_lease_declaration (struct lease **lp, struct parse *cfile)
if (!parse_binding_value(cfile, nv)) {
binding_value_dereference(&nv, MDL);
lease_dereference(&lease, MDL);
+ if (newbinding) {
+ dfree(binding->name, MDL);
+ dfree(binding, MDL);
+ }
return 0;
}
@@ -4762,6 +4782,7 @@ parse_ia_na_declaration(struct parse *cfile) {
if (token != LBRACE) {
parse_warn(cfile, "corrupt lease file; expecting left brace");
skip_to_semi(cfile);
+ ia_dereference(&ia, MDL);
return;
}
@@ -5209,6 +5230,7 @@ parse_ia_ta_declaration(struct parse *cfile) {
if (token != LBRACE) {
parse_warn(cfile, "corrupt lease file; expecting left brace");
skip_to_semi(cfile);
+ ia_dereference(&ia, MDL);
return;
}
@@ -5646,6 +5668,7 @@ parse_ia_pd_declaration(struct parse *cfile) {
if (token != LBRACE) {
parse_warn(cfile, "corrupt lease file; expecting left brace");
skip_to_semi(cfile);
+ ia_dereference(&ia, MDL);
return;
}
diff --git a/server/ddns.c b/server/ddns.c
index 1bd72f6b..aecc3d38 100644
--- a/server/ddns.c
+++ b/server/ddns.c
@@ -1285,9 +1285,10 @@ ddns_update_lease_ptr(struct lease *lease,
file, line);
#endif
/*
- * never reached. update_lease_failed
- * calls log_fatal.
+ * not reached when update_lease_failed is called,
+ * it calls log_fatal.
*/
+ ipv6_pool_dereference(&pool, MDL);
return(ISC_R_FAILURE);
}
ipv6_pool_dereference(&pool, MDL);
diff --git a/server/dhcp.c b/server/dhcp.c
index 6d129ec9..16a4f924 100644
--- a/server/dhcp.c
+++ b/server/dhcp.c
@@ -1193,6 +1193,7 @@ void dhcpinform (packet, ms_nulltp)
if (d1.len != 4) {
log_info("%s: ignored (invalid subnet selection option).", msgbuf);
option_state_dereference(&options, MDL);
+ data_string_forget(&d1, MDL);
return;
}
@@ -1574,6 +1575,7 @@ void dhcpinform (packet, ms_nulltp)
option_state_dereference (&options, MDL);
if (subnet)
subnet_dereference (&subnet, MDL);
+ data_string_forget (&d1, MDL);
return;
}
@@ -3526,6 +3528,7 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp)
(const char *)d1.data, d1.len,
MDL)) {
log_error ("unknown option space %s.", d1.data);
+ data_string_forget (&d1, MDL);
return;
}
@@ -5370,13 +5373,12 @@ int locate_network (packet)
&global_scope, oc, MDL)) {
return 0;
}
- if (data.len == 0) {
- return 0;
- }
+
if (data.len != 4) {
data_string_forget (&data, MDL);
return 0;
}
+
ia.len = 4;
memcpy (ia.iabuf, data.data, 4);
data_string_forget (&data, MDL);
diff --git a/server/dhcpleasequery.c b/server/dhcpleasequery.c
index 7be07889..0f1d4f77 100644
--- a/server/dhcpleasequery.c
+++ b/server/dhcpleasequery.c
@@ -873,15 +873,9 @@ valid_query_msg(struct lq6_state *lq) {
exit:
if (!ret_val) {
- if (lq->client_id.len > 0) {
- data_string_forget(&lq->client_id, MDL);
- }
- if (lq->server_id.len > 0) {
- data_string_forget(&lq->server_id, MDL);
- }
- if (lq->lq_query.len > 0) {
- data_string_forget(&lq->lq_query, MDL);
- }
+ data_string_forget(&lq->client_id, MDL);
+ data_string_forget(&lq->server_id, MDL);
+ data_string_forget(&lq->lq_query, MDL);
}
return ret_val;
}
diff --git a/server/dhcpv6.c b/server/dhcpv6.c
index cde4f617..0ea05325 100644
--- a/server/dhcpv6.c
+++ b/server/dhcpv6.c
@@ -632,13 +632,9 @@ valid_client_msg(struct packet *packet, struct data_string *client_id) {
ret_val = 1;
exit:
- if (data.len > 0) {
- data_string_forget(&data, MDL);
- }
+ data_string_forget(&data, MDL);
if (!ret_val) {
- if (client_id->len > 0) {
- data_string_forget(client_id, MDL);
- }
+ data_string_forget(client_id, MDL);
}
return ret_val;
}
@@ -723,12 +719,8 @@ valid_client_resp(struct packet *packet,
exit:
if (!ret_val) {
- if (server_id->len > 0) {
- data_string_forget(server_id, MDL);
- }
- if (client_id->len > 0) {
- data_string_forget(client_id, MDL);
- }
+ data_string_forget(server_id, MDL);
+ data_string_forget(client_id, MDL);
}
return ret_val;
}
@@ -840,9 +832,7 @@ valid_client_info_req(struct packet *packet, struct data_string *server_id) {
exit:
if (!ret_val) {
- if (server_id->len > 0) {
- data_string_forget(server_id, MDL);
- }
+ data_string_forget(server_id, MDL);
}
return ret_val;
}
diff --git a/server/mdb.c b/server/mdb.c
index 052df676..ff8a707f 100644
--- a/server/mdb.c
+++ b/server/mdb.c
@@ -3,7 +3,7 @@
Server-specific in-memory database support. */
/*
- * Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 2004-2019 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 1996-2003 by Internet Software Consortium
*
* This Source Code Form is subject to the terms of the Mozilla Public
@@ -41,12 +41,12 @@ lease_id_hash_t *lease_hw_addr_hash;
/*
* We allow users to specify any option as a host identifier.
*
- * Any host is uniquely identified by the combination of
+ * Any host is uniquely identified by the combination of
* option type & option data.
*
- * We expect people will only use a few types of options as host
+ * We expect people will only use a few types of options as host
* identifier. Because of this, we store a list with an entry for
- * each option type. Each of these has a hash table, which contains
+ * each option type. Each of these has a hash table, which contains
* hash of the option data.
*
* For v6 we also include a relay count - this specifies which
@@ -87,7 +87,7 @@ isc_result_t enter_class(cd, dynamicp, commit)
class_dereference(&c, MDL);
return ISC_R_EXISTS;
}
-
+
/* Find the tail. */
for (c = collections -> classes;
c -> nic; c = c -> nic)
@@ -188,7 +188,7 @@ change_host_uid(struct host_decl *host, const char *uid, int len) {
}
}
- /*
+ /*
* Remove the old entry, if one exists.
*/
if (host->client_identifier.data != NULL) {
@@ -199,7 +199,7 @@ change_host_uid(struct host_decl *host, const char *uid, int len) {
data_string_forget(&host->client_identifier, MDL);
}
- /*
+ /*
* Set our new value.
*/
memset(&host->client_identifier, 0, sizeof(host->client_identifier));
@@ -213,7 +213,7 @@ change_host_uid(struct host_decl *host, const char *uid, int len) {
/*
* And add to hash.
*/
- host_hash_add(host_uid_hash, host->client_identifier.data,
+ host_hash_add(host_uid_hash, host->client_identifier.data,
host->client_identifier.len, host, MDL);
}
@@ -313,10 +313,32 @@ isc_result_t enter_host (hd, dynamicp, commit)
esp = NULL;
if (executable_statement_foreach (hd->group->statements,
find_uid_statement, &esp, 0)) {
- (void) evaluate_option_cache (&hd->client_identifier,
- NULL, NULL, NULL, NULL, NULL,
+ struct data_string cid;
+ memset(&cid, 0, sizeof(cid));
+ (void) evaluate_option_cache (&cid,
+ NULL, NULL, NULL, NULL, NULL,
&global_scope,
esp->data.option, MDL);
+
+ if (hd->client_identifier.len > 0 && cid.len > 0) {
+ char uid_buf[256];
+ char cid_buf[256];
+ print_hex_or_string(hd->client_identifier.len,
+ hd->client_identifier.data,
+ sizeof(uid_buf) - 1, uid_buf);
+
+ print_hex_or_string(cid.len, cid.data,
+ sizeof(cid_buf) - 1, cid_buf);
+
+ log_error ("Warning, host declaration '%s'"
+ " already has uid '%s',"
+ " ignoring dhcp-client-identifier '%s'",
+ hd->name, uid_buf, cid_buf);
+
+ data_string_forget(&cid, MDL);
+ } else {
+ memcpy(&hd->client_identifier, &cid, sizeof(cid));
+ }
}
/* If we got a client identifier, hash this entry by
@@ -379,9 +401,9 @@ isc_result_t enter_host (hd, dynamicp, commit)
log_fatal("No memory for host-identifier "
"option information.");
}
- option_reference(&h_id_info->option,
+ option_reference(&h_id_info->option,
hd->host_id_option, MDL);
- if (!host_new_hash(&h_id_info->values_hash,
+ if (!host_new_hash(&h_id_info->values_hash,
HOST_HASH_SIZE, MDL)) {
log_fatal("No memory for host-identifier "
"option hash.");
@@ -391,16 +413,16 @@ isc_result_t enter_host (hd, dynamicp, commit)
host_id_info = h_id_info;
}
- if (host_hash_lookup(&hp, h_id_info->values_hash,
+ if (host_hash_lookup(&hp, h_id_info->values_hash,
hd->host_id.data, hd->host_id.len, MDL)) {
- /*
- * If this option is already present, then add
+ /*
+ * If this option is already present, then add
* this host to the list in n_ipaddr, unless
* we have already done so previously.
*
* XXXSK: This seems scary to me, but I don't
- * fully understand how these are used.
- * Shouldn't there be multiple lists, or
+ * fully understand how these are used.
+ * Shouldn't there be multiple lists, or
* maybe we should just forbid duplicates?
*/
if (np == NULL) {
@@ -414,7 +436,7 @@ isc_result_t enter_host (hd, dynamicp, commit)
}
host_dereference(&hp, MDL);
} else {
- host_hash_add(h_id_info->values_hash,
+ host_hash_add(h_id_info->values_hash,
hd->host_id.data,
hd->host_id.len,
hd, MDL);
@@ -440,18 +462,18 @@ isc_result_t delete_class (cp, commit)
/* do the write first as we won't be leaving it in any data
structures, unlike the host objects */
-
+
if (commit) {
write_named_billing_class ((unsigned char *)cp->name, 0, cp);
if (!commit_leases ())
return ISC_R_IOERROR;
}
-
+
/*
* If this is a subclass remove it from the class's hash table
*/
if (cp->superclass) {
- class_hash_delete(cp->superclass->hash,
+ class_hash_delete(cp->superclass->hash,
(const char *)cp->hash_string.data,
cp->hash_string.len,
MDL);
@@ -634,7 +656,7 @@ int find_hosts_by_uid (struct host_decl **hp,
}
int
-find_hosts_by_option(struct host_decl **hp,
+find_hosts_by_option(struct host_decl **hp,
struct packet *packet,
struct option_state *opt_state,
const char *file, int line) {
@@ -649,9 +671,9 @@ find_hosts_by_option(struct host_decl **hp,
if ((found = find_client_in_ldap (hp, packet, opt_state, file, line)))
return found;
#endif
-
+
for (p = host_id_info; p != NULL; p = p->next) {
- relay_packet = packet;
+ relay_packet = packet;
relay_state = opt_state;
/* If this option block is for a relay (relays != 0)
@@ -675,20 +697,20 @@ find_hosts_by_option(struct host_decl **hp,
relay_state = relay_packet->options;
}
- oc = lookup_option(p->option->universe,
+ oc = lookup_option(p->option->universe,
relay_state, p->option->code);
if (oc != NULL) {
memset(&data, 0, sizeof(data));
if (!evaluate_option_cache(&data, relay_packet, NULL,
NULL, relay_state, NULL,
- &global_scope, oc,
+ &global_scope, oc,
MDL)) {
log_error("Error evaluating option cache");
return 0;
}
-
- found = host_hash_lookup(hp, p->values_hash,
+
+ found = host_hash_lookup(hp, p->values_hash,
data.data, data.len,
file, line);
@@ -949,8 +971,8 @@ int find_grouped_subnet (struct subnet **sp,
}
/* XXX: could speed up if everyone had a prefix length */
-int
-subnet_inner_than(const struct subnet *subnet,
+int
+subnet_inner_than(const struct subnet *subnet,
const struct subnet *scan,
int warnp) {
#if defined(DHCP4o6)
@@ -1026,7 +1048,7 @@ void enter_subnet (subnet)
}
subnet_reference (&subnets, subnet, MDL);
}
-
+
/* Enter a new shared network into the shared network list. */
void enter_shared_network (share)
@@ -1039,7 +1061,7 @@ void enter_shared_network (share)
}
shared_network_reference (&shared_networks, share, MDL);
}
-
+
void new_shared_network_interface (cfile, share, name)
struct parse *cfile;
struct shared_network *share;
@@ -1049,12 +1071,12 @@ void new_shared_network_interface (cfile, share, name)
isc_result_t status;
if (share -> interface) {
- parse_warn (cfile,
+ parse_warn (cfile,
"A subnet or shared network can't be connected %s",
"to two interfaces.");
return;
}
-
+
for (ip = interfaces; ip; ip = ip -> next)
if (!strcmp (ip -> name, name))
break;
@@ -1403,7 +1425,7 @@ int supersede_lease (comp, lease, commit, propogate, pimmediate, from_pool)
/* If this is the next lease that will timeout on the pool,
zap the old timeout and set the timeout on this pool to the
time that the lease's next event will happen.
-
+
We do not actually set the timeout unless commit is true -
we don't want to thrash the timer queue when reading the
lease database. Instead, the database code calls the
@@ -1516,7 +1538,7 @@ void make_binding_state_transition (struct lease *lease)
executable_statement_dereference
(&lease->on_star.on_expiry, MDL);
}
-
+
/* No sense releasing a lease after it's expired. */
if (lease->on_star.on_release)
executable_statement_dereference
@@ -1579,7 +1601,7 @@ void make_binding_state_transition (struct lease *lease)
executable_statement_dereference
(&lease->on_star.on_release, MDL);
}
-
+
/* A released lease can't expire. */
if (lease->on_star.on_expiry)
executable_statement_dereference
@@ -1947,7 +1969,7 @@ void pool_timer (vpool)
if (i == EXPIRED_LEASES)
continue;
}
-#endif
+#endif
lease_reference(&lease, LEASE_GET_FIRSTP(lptr[i]), MDL);
while (lease) {
@@ -2239,7 +2261,7 @@ hw_hash_add(struct lease *lease)
if ((lease->hardware_addr.hlen == 1) &&
(lease->hardware_addr.hbuf[0] == HTYPE_INFINIBAND))
return;
-
+
/* If it's not in the hash, just add it. */
if (!find_lease_by_hw_addr (&head, lease -> hardware_addr.hbuf,
lease -> hardware_addr.hlen, MDL))
@@ -2429,12 +2451,12 @@ int write_leases ()
}
}
- /* XXXJAB this number doesn't include subclasses... */
+ /* XXXJAB this number doesn't include subclasses... */
log_info ("Wrote %d class decls to leases file.",
numclasseswritten);
}
-
-
+
+
/* Write all the dynamically-created group declarations. */
if (group_name_hash) {
num_written = 0;
@@ -2605,7 +2627,7 @@ void lease_insert(struct lease **lq, struct lease *comp)
* a re-queue), use that as a starting point for the insertion-sort.
*/
if ((server_starting & SS_QFOLLOW) && (lq == last_lq) &&
- (comp != last_insert_point) &&
+ (comp != last_insert_point) &&
(last_insert_point->sort_time <= comp->sort_time)) {
prev = last_insert_point;
lp = prev->next;
@@ -2655,7 +2677,7 @@ void lease_insert(struct lease **lq, struct lease *comp)
*/
int lease_enqueue (struct lease *comp)
{
- LEASE_STRUCT_PTR lq;
+ LEASE_STRUCT_PTR lq;
/* No queue to put it on? */
if (!comp -> pool)
@@ -2757,17 +2779,17 @@ lease_instantiate(const void *key, unsigned len, void *object)
* pool must have been formerly configured for failover and
* is now configured as standalone. This means we need to
* move the lease to FTS_FREE to make it available. */
- if ((lease->binding_state == FTS_BACKUP) &&
+ if ((lease->binding_state == FTS_BACKUP) &&
(lease->pool->failover_peer == NULL)) {
#else
/* We aren't compiled for failover, so just move to FTS_FREE */
- if (lease->binding_state == FTS_BACKUP) {
+ if (lease->binding_state == FTS_BACKUP) {
#endif
lease->binding_state = FTS_FREE;
lease->next_binding_state = FTS_FREE;
lease->rewind_binding_state = FTS_FREE;
}
-
+
/* Put the lease on the right queue. Failure to queue is probably
* due to a bogus binding state. In such a case, we claim success,
* so that later leases in a hash_foreach are processed, but we
diff --git a/server/mdb6.c b/server/mdb6.c
index 4afb3928..da7baf6e 100644
--- a/server/mdb6.c
+++ b/server/mdb6.c
@@ -1085,9 +1085,11 @@ create_lease6(struct ipv6_pool *pool, struct iasubopt **addr,
case D6O_IA_PD:
/* prefix */
log_error("create_lease6: prefix pool.");
+ data_string_forget(&ds, MDL);
return DHCP_R_INVALIDARG;
default:
log_error("create_lease6: untyped pool.");
+ data_string_forget(&ds, MDL);
return DHCP_R_INVALIDARG;
}
diff --git a/server/tests/Makefile.in b/server/tests/Makefile.in
index bc1c00b3..acd9b541 100644
--- a/server/tests/Makefile.in
+++ b/server/tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -178,7 +178,18 @@ am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/bootp.Po ./$(DEPDIR)/class.Po \
+ ./$(DEPDIR)/confpars.Po ./$(DEPDIR)/db.Po ./$(DEPDIR)/ddns.Po \
+ ./$(DEPDIR)/dhcp.Po ./$(DEPDIR)/dhcpd.Po \
+ ./$(DEPDIR)/dhcpleasequery.Po ./$(DEPDIR)/dhcpv6.Po \
+ ./$(DEPDIR)/failover.Po ./$(DEPDIR)/hash_unittest.Po \
+ ./$(DEPDIR)/ldap.Po ./$(DEPDIR)/ldap_casa.Po \
+ ./$(DEPDIR)/leasechain.Po ./$(DEPDIR)/leaseq_unittest.Po \
+ ./$(DEPDIR)/load_bal_unittest.Po ./$(DEPDIR)/mdb.Po \
+ ./$(DEPDIR)/mdb6.Po ./$(DEPDIR)/mdb6_unittest.Po \
+ ./$(DEPDIR)/omapi.Po ./$(DEPDIR)/salloc.Po \
+ ./$(DEPDIR)/simple_unittest.Po ./$(DEPDIR)/stables.Po
am__mv = mv -f
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -224,7 +235,7 @@ am__recursive_targets = \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- distdir
+ distdir distdir-am
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
@@ -447,8 +458,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -489,29 +500,35 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bootp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/class.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/confpars.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/db.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ddns.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpleasequery.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpv6.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/failover.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash_unittest.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldap.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldap_casa.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/leasechain.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/leaseq_unittest.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_bal_unittest.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mdb.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mdb6.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mdb6_unittest.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/omapi.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/salloc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_unittest.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stables.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bootp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/class.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/confpars.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/db.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ddns.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpd.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpleasequery.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhcpv6.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/failover.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldap.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldap_casa.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/leasechain.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/leaseq_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_bal_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mdb.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mdb6.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mdb6_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/omapi.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/salloc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stables.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -878,7 +895,10 @@ cscopelist-am: $(am__tagged_files)
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -975,7 +995,29 @@ clean: clean-recursive
clean-am: clean-checkPROGRAMS clean-generic mostlyclean-am
distclean: distclean-recursive
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/bootp.Po
+ -rm -f ./$(DEPDIR)/class.Po
+ -rm -f ./$(DEPDIR)/confpars.Po
+ -rm -f ./$(DEPDIR)/db.Po
+ -rm -f ./$(DEPDIR)/ddns.Po
+ -rm -f ./$(DEPDIR)/dhcp.Po
+ -rm -f ./$(DEPDIR)/dhcpd.Po
+ -rm -f ./$(DEPDIR)/dhcpleasequery.Po
+ -rm -f ./$(DEPDIR)/dhcpv6.Po
+ -rm -f ./$(DEPDIR)/failover.Po
+ -rm -f ./$(DEPDIR)/hash_unittest.Po
+ -rm -f ./$(DEPDIR)/ldap.Po
+ -rm -f ./$(DEPDIR)/ldap_casa.Po
+ -rm -f ./$(DEPDIR)/leasechain.Po
+ -rm -f ./$(DEPDIR)/leaseq_unittest.Po
+ -rm -f ./$(DEPDIR)/load_bal_unittest.Po
+ -rm -f ./$(DEPDIR)/mdb.Po
+ -rm -f ./$(DEPDIR)/mdb6.Po
+ -rm -f ./$(DEPDIR)/mdb6_unittest.Po
+ -rm -f ./$(DEPDIR)/omapi.Po
+ -rm -f ./$(DEPDIR)/salloc.Po
+ -rm -f ./$(DEPDIR)/simple_unittest.Po
+ -rm -f ./$(DEPDIR)/stables.Po
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-local distclean-tags
@@ -1019,7 +1061,29 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/bootp.Po
+ -rm -f ./$(DEPDIR)/class.Po
+ -rm -f ./$(DEPDIR)/confpars.Po
+ -rm -f ./$(DEPDIR)/db.Po
+ -rm -f ./$(DEPDIR)/ddns.Po
+ -rm -f ./$(DEPDIR)/dhcp.Po
+ -rm -f ./$(DEPDIR)/dhcpd.Po
+ -rm -f ./$(DEPDIR)/dhcpleasequery.Po
+ -rm -f ./$(DEPDIR)/dhcpv6.Po
+ -rm -f ./$(DEPDIR)/failover.Po
+ -rm -f ./$(DEPDIR)/hash_unittest.Po
+ -rm -f ./$(DEPDIR)/ldap.Po
+ -rm -f ./$(DEPDIR)/ldap_casa.Po
+ -rm -f ./$(DEPDIR)/leasechain.Po
+ -rm -f ./$(DEPDIR)/leaseq_unittest.Po
+ -rm -f ./$(DEPDIR)/load_bal_unittest.Po
+ -rm -f ./$(DEPDIR)/mdb.Po
+ -rm -f ./$(DEPDIR)/mdb6.Po
+ -rm -f ./$(DEPDIR)/mdb6_unittest.Po
+ -rm -f ./$(DEPDIR)/omapi.Po
+ -rm -f ./$(DEPDIR)/salloc.Po
+ -rm -f ./$(DEPDIR)/simple_unittest.Po
+ -rm -f ./$(DEPDIR)/stables.Po
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -1039,19 +1103,19 @@ uninstall-am:
.MAKE: $(am__recursive_targets) check-am install-am install-strip
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
- check-am clean clean-checkPROGRAMS clean-generic cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-local distclean-tags distdir dvi dvi-am html html-am \
- info info-am install install-am install-data install-data-am \
- install-dvi install-dvi-am install-exec install-exec-am \
- install-html install-html-am install-info install-info-am \
- install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--depfiles check check-am clean clean-checkPROGRAMS \
+ clean-generic cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-local \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+ ps ps-am tags tags-am uninstall uninstall-am
.PRECIOUS: Makefile