mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
- unbound-control forward_add, forward_remove, stub_add, stub_remove
can modify stubs and forwards for running unbound (on mobile computer) they can also add and remove domain-insecure for the zone. git-svn-id: file:///svn/unbound/trunk@2623 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
943f8f43b9
commit
d64b14cff9
13 changed files with 717 additions and 297 deletions
369
Makefile.in
369
Makefile.in
|
|
@ -529,88 +529,78 @@ depend:
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
dns.lo dns.o: $(srcdir)/services/cache/dns.c config.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \
|
dns.lo dns.o: $(srcdir)/services/cache/dns.c config.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/validator/val_nsec.h \
|
$(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
|
$(srcdir)/util/locks.h \
|
||||||
$(srcdir)/services/cache/dns.h \
|
$(srcdir)/services/cache/dns.h $(srcdir)/util/data/msgreply.h $(srcdir)/services/cache/rrset.h \
|
||||||
$(srcdir)/util/data/msgreply.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
|
$(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/dname.h $(srcdir)/util/module.h \
|
||||||
$(srcdir)/util/data/dname.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/net_help.h \
|
$(srcdir)/util/net_help.h \
|
||||||
$(srcdir)/util/regional.h $(srcdir)/util/config_file.h
|
$(srcdir)/util/regional.h $(srcdir)/util/config_file.h
|
||||||
infra.lo infra.o: $(srcdir)/services/cache/infra.c config.h \
|
infra.lo infra.o: $(srcdir)/services/cache/infra.c config.h \
|
||||||
$(srcdir)/services/cache/infra.h \
|
$(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rtt.h \
|
$(srcdir)/util/rtt.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lookup3.h \
|
||||||
$(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/data/dname.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h \
|
||||||
$(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h \
|
|
||||||
$(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \
|
||||||
|
|
||||||
rrset.lo rrset.o: $(srcdir)/services/cache/rrset.c config.h $(srcdir)/services/cache/rrset.h \
|
rrset.lo rrset.o: $(srcdir)/services/cache/rrset.c config.h $(srcdir)/services/cache/rrset.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/config_file.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h
|
||||||
$(srcdir)/util/data/msgreply.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h
|
|
||||||
dname.lo dname.o: $(srcdir)/util/data/dname.c config.h $(srcdir)/util/data/dname.h \
|
dname.lo dname.o: $(srcdir)/util/data/dname.c config.h $(srcdir)/util/data/dname.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/storage/lookup3.h
|
$(srcdir)/util/storage/lookup3.h
|
||||||
msgencode.lo msgencode.o: $(srcdir)/util/data/msgencode.c config.h \
|
msgencode.lo msgencode.o: $(srcdir)/util/data/msgencode.c config.h \
|
||||||
$(srcdir)/util/data/msgencode.h \
|
$(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/data/dname.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h
|
||||||
$(srcdir)/util/regional.h $(srcdir)/util/net_help.h
|
|
||||||
msgparse.lo msgparse.o: $(srcdir)/util/data/msgparse.c config.h \
|
msgparse.lo msgparse.o: $(srcdir)/util/data/msgparse.c config.h \
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \
|
$(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/dname.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lookup3.h \
|
$(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h
|
||||||
$(srcdir)/util/regional.h
|
|
||||||
msgreply.lo msgreply.o: $(srcdir)/util/data/msgreply.c config.h \
|
msgreply.lo msgreply.o: $(srcdir)/util/data/msgreply.c config.h \
|
||||||
$(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h \
|
||||||
$(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h \
|
$(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h \
|
||||||
$(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h $(srcdir)/util/data/msgencode.h
|
||||||
$(srcdir)/util/data/msgencode.h
|
|
||||||
packed_rrset.lo packed_rrset.o: $(srcdir)/util/data/packed_rrset.c config.h \
|
packed_rrset.lo packed_rrset.o: $(srcdir)/util/data/packed_rrset.c config.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \
|
||||||
$(srcdir)/util/net_help.h
|
$(srcdir)/util/net_help.h
|
||||||
iterator.lo iterator.o: $(srcdir)/iterator/iterator.c config.h \
|
iterator.lo iterator.o: $(srcdir)/iterator/iterator.c config.h \
|
||||||
$(srcdir)/iterator/iterator.h \
|
$(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h \
|
||||||
$(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h \
|
$(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/iterator/iter_utils.h \
|
||||||
$(srcdir)/util/data/msgparse.h $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h \
|
$(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \
|
||||||
$(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
|
$(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_donotq.h \
|
||||||
$(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_donotq.h $(srcdir)/iterator/iter_delegpt.h \
|
$(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_scrub.h $(srcdir)/iterator/iter_priv.h \
|
||||||
$(srcdir)/iterator/iter_scrub.h $(srcdir)/iterator/iter_priv.h $(srcdir)/validator/val_neg.h \
|
$(srcdir)/validator/val_neg.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \
|
||||||
$(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h \
|
$(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \
|
||||||
$(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \
|
||||||
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \
|
$(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/util/config_file.h
|
||||||
$(srcdir)/util/config_file.h
|
|
||||||
iter_delegpt.lo iter_delegpt.o: $(srcdir)/iterator/iter_delegpt.c config.h $(srcdir)/iterator/iter_delegpt.h \
|
iter_delegpt.lo iter_delegpt.o: $(srcdir)/iterator/iter_delegpt.c config.h $(srcdir)/iterator/iter_delegpt.h \
|
||||||
$(srcdir)/util/log.h \
|
$(srcdir)/util/log.h \
|
||||||
$(srcdir)/services/cache/dns.h \
|
$(srcdir)/services/cache/dns.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/regional.h \
|
$(srcdir)/util/regional.h \
|
||||||
$(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h
|
$(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h
|
||||||
iter_donotq.lo iter_donotq.o: $(srcdir)/iterator/iter_donotq.c config.h $(srcdir)/iterator/iter_donotq.h \
|
iter_donotq.lo iter_donotq.o: $(srcdir)/iterator/iter_donotq.c config.h $(srcdir)/iterator/iter_donotq.h \
|
||||||
$(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \
|
$(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/config_file.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/net_help.h
|
||||||
$(srcdir)/util/net_help.h
|
|
||||||
iter_fwd.lo iter_fwd.o: $(srcdir)/iterator/iter_fwd.c config.h \
|
iter_fwd.lo iter_fwd.o: $(srcdir)/iterator/iter_fwd.c config.h \
|
||||||
$(srcdir)/iterator/iter_fwd.h \
|
$(srcdir)/iterator/iter_fwd.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h $(srcdir)/util/regional.h \
|
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h
|
||||||
iter_hints.lo iter_hints.o: $(srcdir)/iterator/iter_hints.c config.h \
|
iter_hints.lo iter_hints.o: $(srcdir)/iterator/iter_hints.c config.h \
|
||||||
$(srcdir)/iterator/iter_hints.h \
|
$(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \
|
$(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \
|
||||||
$(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h
|
|
||||||
iter_priv.lo iter_priv.o: $(srcdir)/iterator/iter_priv.c config.h \
|
iter_priv.lo iter_priv.o: $(srcdir)/iterator/iter_priv.c config.h \
|
||||||
$(srcdir)/iterator/iter_priv.h \
|
$(srcdir)/iterator/iter_priv.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/util/rbtree.h \
|
$(srcdir)/util/regional.h \
|
||||||
$(srcdir)/util/regional.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \
|
$(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/net_help.h \
|
$(srcdir)/util/net_help.h \
|
||||||
$(srcdir)/util/storage/dnstree.h
|
$(srcdir)/util/storage/dnstree.h
|
||||||
iter_resptype.lo iter_resptype.o: $(srcdir)/iterator/iter_resptype.c config.h \
|
iter_resptype.lo iter_resptype.o: $(srcdir)/iterator/iter_resptype.c config.h \
|
||||||
|
|
@ -619,9 +609,8 @@ iter_resptype.lo iter_resptype.o: $(srcdir)/iterator/iter_resptype.c config.h \
|
||||||
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/net_help.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/net_help.h \
|
||||||
$(srcdir)/util/data/dname.h
|
$(srcdir)/util/data/dname.h
|
||||||
iter_scrub.lo iter_scrub.o: $(srcdir)/iterator/iter_scrub.c config.h $(srcdir)/iterator/iter_scrub.h \
|
iter_scrub.lo iter_scrub.o: $(srcdir)/iterator/iter_scrub.c config.h $(srcdir)/iterator/iter_scrub.h \
|
||||||
$(srcdir)/iterator/iterator.h \
|
$(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h \
|
||||||
$(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/module.h \
|
$(srcdir)/util/module.h \
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/iterator/iter_priv.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h \
|
$(srcdir)/iterator/iter_priv.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h \
|
||||||
|
|
@ -629,9 +618,8 @@ iter_scrub.lo iter_scrub.o: $(srcdir)/iterator/iter_scrub.c config.h $(srcdir)/i
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/alloc.h
|
$(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/alloc.h
|
||||||
iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_utils.c config.h $(srcdir)/iterator/iter_utils.h \
|
iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_utils.c config.h $(srcdir)/iterator/iter_utils.h \
|
||||||
$(srcdir)/iterator/iter_resptype.h \
|
$(srcdir)/iterator/iter_resptype.h \
|
||||||
$(srcdir)/iterator/iterator.h \
|
$(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h \
|
||||||
$(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/module.h \
|
$(srcdir)/util/module.h \
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
|
$(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
|
||||||
|
|
@ -647,11 +635,10 @@ listen_dnsport.lo listen_dnsport.o: $(srcdir)/services/listen_dnsport.c config.h
|
||||||
$(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \
|
$(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \
|
||||||
$(srcdir)/util/net_help.h
|
$(srcdir)/util/net_help.h
|
||||||
localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h \
|
localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h \
|
||||||
$(srcdir)/services/localzone.h \
|
$(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \
|
$(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \
|
||||||
$(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \
|
||||||
$(srcdir)/util/data/msgencode.h $(srcdir)/util/net_help.h $(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/net_help.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h
|
||||||
$(srcdir)/util/data/msgparse.h
|
|
||||||
mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h \
|
mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h \
|
||||||
$(srcdir)/services/mesh.h \
|
$(srcdir)/services/mesh.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h \
|
||||||
|
|
@ -662,13 +649,11 @@ mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h \
|
||||||
$(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h
|
$(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h
|
||||||
modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/services/modstack.h \
|
modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/services/modstack.h \
|
||||||
$(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/fptr_wlist.h \
|
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \
|
||||||
$(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
|
$(srcdir)/util/rbtree.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \
|
||||||
$(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h \
|
$(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/pythonmod/pythonmod.h
|
||||||
$(srcdir)/validator/val_utils.h $(srcdir)/pythonmod/pythonmod.h
|
|
||||||
outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \
|
outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \
|
||||||
$(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \
|
$(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/util/netevent.h \
|
$(srcdir)/util/netevent.h \
|
||||||
|
|
@ -679,8 +664,7 @@ outside_network.lo outside_network.o: $(srcdir)/services/outside_network.c confi
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \
|
||||||
$(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \
|
||||||
$(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \
|
$(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
|
||||||
|
|
||||||
alloc.lo alloc.o: $(srcdir)/util/alloc.c config.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
alloc.lo alloc.o: $(srcdir)/util/alloc.c config.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/regional.h \
|
$(srcdir)/util/regional.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
||||||
|
|
@ -703,38 +687,35 @@ configparser.lo configparser.o: util/configparser.c config.h $(srcdir)/util/conf
|
||||||
|
|
||||||
fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/fptr_wlist.h \
|
fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/fptr_wlist.h \
|
||||||
$(srcdir)/util/netevent.h \
|
$(srcdir)/util/netevent.h \
|
||||||
$(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/tube.h \
|
$(srcdir)/util/tube.h \
|
||||||
$(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \
|
$(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/daemon/worker.h $(srcdir)/util/alloc.h $(srcdir)/daemon/stats.h \
|
$(srcdir)/util/rbtree.h $(srcdir)/daemon/worker.h $(srcdir)/util/alloc.h $(srcdir)/daemon/stats.h \
|
||||||
$(srcdir)/util/timehist.h $(srcdir)/daemon/remote.h \
|
$(srcdir)/util/timehist.h $(srcdir)/daemon/remote.h $(srcdir)/services/outside_network.h \
|
||||||
$(srcdir)/services/outside_network.h $(srcdir)/services/localzone.h $(srcdir)/services/cache/infra.h \
|
$(srcdir)/services/localzone.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
|
||||||
$(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
|
$(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/iterator/iterator.h \
|
||||||
$(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \
|
$(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \
|
||||||
$(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \
|
$(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \
|
||||||
$(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h \
|
$(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \
|
||||||
$(srcdir)/validator/val_neg.h $(srcdir)/validator/autotrust.h $(srcdir)/util/storage/dnstree.h \
|
$(srcdir)/validator/autotrust.h $(srcdir)/util/storage/dnstree.h $(srcdir)/libunbound/libworker.h \
|
||||||
$(srcdir)/libunbound/libworker.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h \
|
$(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/config_file.h \
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/pythonmod/pythonmod.h
|
$(srcdir)/pythonmod/pythonmod.h
|
||||||
locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
|
|
||||||
log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h \
|
log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/locks.h
|
$(srcdir)/util/locks.h
|
||||||
mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \
|
mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \
|
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \
|
||||||
$(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/tube.h \
|
$(srcdir)/util/tube.h \
|
||||||
$(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
|
$(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
|
||||||
module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \
|
module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
|
|
||||||
netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h \
|
netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h \
|
||||||
|
|
@ -742,20 +723,17 @@ netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h \
|
||||||
$(srcdir)/util/log.h $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/log.h $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/msgparse.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
|
$(srcdir)/util/data/msgparse.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/services/modstack.h \
|
$(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
|
||||||
$(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
|
|
||||||
net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h \
|
net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h \
|
||||||
$(srcdir)/util/net_help.h \
|
$(srcdir)/util/net_help.h \
|
||||||
$(srcdir)/util/log.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
|
$(srcdir)/util/log.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
|
||||||
$(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/msgparse.h $(srcdir)/util/regional.h \
|
$(srcdir)/util/data/msgparse.h $(srcdir)/util/regional.h
|
||||||
|
|
||||||
random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h \
|
random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h \
|
||||||
|
|
||||||
rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h \
|
rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/fptr_wlist.h \
|
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
|
||||||
$(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/tube.h \
|
$(srcdir)/util/tube.h \
|
||||||
$(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
|
$(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
|
||||||
|
|
@ -770,8 +748,7 @@ dnstree.lo dnstree.o: $(srcdir)/util/storage/dnstree.c config.h $(srcdir)/util/s
|
||||||
lookup3.lo lookup3.o: $(srcdir)/util/storage/lookup3.c config.h $(srcdir)/util/storage/lookup3.h
|
lookup3.lo lookup3.o: $(srcdir)/util/storage/lookup3.c config.h $(srcdir)/util/storage/lookup3.h
|
||||||
lruhash.lo lruhash.o: $(srcdir)/util/storage/lruhash.c config.h $(srcdir)/util/storage/lruhash.h \
|
lruhash.lo lruhash.o: $(srcdir)/util/storage/lruhash.c config.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/fptr_wlist.h \
|
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
|
||||||
$(srcdir)/util/netevent.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
|
|
||||||
$(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/tube.h \
|
$(srcdir)/util/tube.h \
|
||||||
|
|
@ -790,79 +767,71 @@ tube.lo tube.o: $(srcdir)/util/tube.c config.h $(srcdir)/util/tube.h $(srcdir)/u
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
|
$(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
|
||||||
winsock_event.lo winsock_event.o: $(srcdir)/util/winsock_event.c config.h
|
winsock_event.lo winsock_event.o: $(srcdir)/util/winsock_event.c config.h
|
||||||
autotrust.lo autotrust.o: $(srcdir)/validator/autotrust.c config.h \
|
autotrust.lo autotrust.o: $(srcdir)/validator/autotrust.c config.h \
|
||||||
$(srcdir)/validator/autotrust.h \
|
$(srcdir)/validator/autotrust.h $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_anchor.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_utils.h \
|
$(srcdir)/validator/val_utils.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/dname.h \
|
||||||
$(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/dname.h $(srcdir)/util/module.h \
|
$(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/net_help.h \
|
||||||
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/net_help.h \
|
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/services/mesh.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/services/mesh.h \
|
||||||
$(srcdir)/util/netevent.h $(srcdir)/services/modstack.h $(srcdir)/services/cache/rrset.h \
|
$(srcdir)/util/netevent.h $(srcdir)/services/modstack.h $(srcdir)/services/cache/rrset.h \
|
||||||
$(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kcache.h
|
$(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kcache.h
|
||||||
val_anchor.lo val_anchor.o: $(srcdir)/validator/val_anchor.c config.h \
|
val_anchor.lo val_anchor.o: $(srcdir)/validator/val_anchor.c config.h \
|
||||||
$(srcdir)/validator/val_anchor.h \
|
$(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_sigcrypt.h \
|
$(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/validator/autotrust.h \
|
$(srcdir)/validator/autotrust.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \
|
||||||
$(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h
|
$(srcdir)/util/config_file.h
|
||||||
validator.lo validator.o: $(srcdir)/validator/validator.c config.h \
|
validator.lo validator.o: $(srcdir)/validator/validator.c config.h \
|
||||||
$(srcdir)/validator/validator.h \
|
$(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
|
||||||
$(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \
|
||||||
$(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h \
|
$(srcdir)/util/rbtree.h $(srcdir)/validator/val_kcache.h $(srcdir)/util/storage/slabhash.h \
|
||||||
$(srcdir)/validator/val_kcache.h $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kentry.h \
|
$(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h \
|
||||||
$(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_neg.h \
|
$(srcdir)/validator/val_neg.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/autotrust.h \
|
||||||
$(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/autotrust.h $(srcdir)/services/cache/dns.h \
|
$(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \
|
||||||
$(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \
|
||||||
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \
|
$(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
|
||||||
$(srcdir)/services/modstack.h
|
|
||||||
val_kcache.lo val_kcache.o: $(srcdir)/validator/val_kcache.c config.h $(srcdir)/validator/val_kcache.h \
|
val_kcache.lo val_kcache.o: $(srcdir)/validator/val_kcache.c config.h $(srcdir)/validator/val_kcache.h \
|
||||||
$(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/validator/val_kentry.h \
|
$(srcdir)/validator/val_kentry.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
|
|
||||||
val_kentry.lo val_kentry.o: $(srcdir)/validator/val_kentry.c config.h \
|
val_kentry.lo val_kentry.o: $(srcdir)/validator/val_kentry.c config.h \
|
||||||
$(srcdir)/validator/val_kentry.h \
|
$(srcdir)/validator/val_kentry.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h \
|
||||||
$(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h
|
$(srcdir)/util/regional.h $(srcdir)/util/net_help.h
|
||||||
val_neg.lo val_neg.o: $(srcdir)/validator/val_neg.c config.h \
|
val_neg.lo val_neg.o: $(srcdir)/validator/val_neg.c config.h $(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h \
|
||||||
$(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/rbtree.h \
|
$(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/validator/val_nsec3.h \
|
$(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h \
|
||||||
$(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \
|
||||||
$(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/services/cache/rrset.h \
|
$(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h
|
||||||
$(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h
|
val_nsec3.lo val_nsec3.o: $(srcdir)/validator/val_nsec3.c config.h $(srcdir)/validator/val_nsec3.h \
|
||||||
val_nsec3.lo val_nsec3.o: $(srcdir)/validator/val_nsec3.c config.h \
|
$(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
|
||||||
$(srcdir)/validator/validator.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kentry.h $(srcdir)/services/cache/rrset.h \
|
||||||
$(srcdir)/validator/val_utils.h \
|
$(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \
|
||||||
$(srcdir)/validator/val_kentry.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/validator/val_nsec.h
|
||||||
$(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/validator/val_nsec.h
|
|
||||||
val_nsec.lo val_nsec.o: $(srcdir)/validator/val_nsec.c config.h \
|
val_nsec.lo val_nsec.o: $(srcdir)/validator/val_nsec.c config.h \
|
||||||
$(srcdir)/validator/val_nsec.h \
|
$(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/msgreply.h \
|
||||||
$(srcdir)/validator/val_utils.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/dname.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/net_help.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \
|
|
||||||
$(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h
|
$(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h
|
||||||
val_sigcrypt.lo val_sigcrypt.o: $(srcdir)/validator/val_sigcrypt.c config.h \
|
val_sigcrypt.lo val_sigcrypt.o: $(srcdir)/validator/val_sigcrypt.c config.h \
|
||||||
$(srcdir)/validator/val_sigcrypt.h \
|
$(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/validator.h $(srcdir)/util/module.h \
|
||||||
$(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/validator/val_utils.h \
|
||||||
$(srcdir)/util/data/msgparse.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/util/rbtree.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \
|
|
||||||
|
|
||||||
val_utils.lo val_utils.o: $(srcdir)/validator/val_utils.c config.h $(srcdir)/validator/val_utils.h \
|
val_utils.lo val_utils.o: $(srcdir)/validator/val_utils.c config.h $(srcdir)/validator/val_utils.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/validator/validator.h \
|
$(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
|
||||||
$(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/validator/val_kentry.h \
|
$(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_anchor.h \
|
||||||
$(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h \
|
$(srcdir)/util/rbtree.h $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_neg.h \
|
||||||
$(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/rrset.h \
|
$(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \
|
||||||
$(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h
|
||||||
$(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h
|
|
||||||
checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/testcode/checklocks.h
|
$(srcdir)/testcode/checklocks.h
|
||||||
unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h \
|
unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h \
|
||||||
|
|
@ -875,8 +844,7 @@ unitdname.lo unitdname.o: $(srcdir)/testcode/unitdname.c config.h \
|
||||||
$(srcdir)/util/locks.h
|
$(srcdir)/util/locks.h
|
||||||
unitlruhash.lo unitlruhash.o: $(srcdir)/testcode/unitlruhash.c config.h $(srcdir)/testcode/unitmain.h \
|
unitlruhash.lo unitlruhash.o: $(srcdir)/testcode/unitlruhash.c config.h $(srcdir)/testcode/unitmain.h \
|
||||||
$(srcdir)/util/log.h \
|
$(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h
|
|
||||||
unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h \
|
unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h \
|
||||||
$(srcdir)/util/log.h \
|
$(srcdir)/util/log.h \
|
||||||
$(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \
|
$(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \
|
||||||
|
|
@ -900,14 +868,12 @@ unitslabhash.lo unitslabhash.o: $(srcdir)/testcode/unitslabhash.c config.h $(src
|
||||||
$(srcdir)/util/log.h \
|
$(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h
|
$(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h
|
||||||
unitverify.lo unitverify.o: $(srcdir)/testcode/unitverify.c config.h $(srcdir)/util/log.h \
|
unitverify.lo unitverify.o: $(srcdir)/testcode/unitverify.c config.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/testcode/unitmain.h \
|
$(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
|
||||||
$(srcdir)/util/locks.h \
|
$(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/validator/val_nsec.h \
|
$(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
|
||||||
$(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h $(srcdir)/validator/validator.h $(srcdir)/util/module.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/validator/val_utils.h $(srcdir)/testcode/ldns-testpkts.h \
|
||||||
$(srcdir)/validator/val_utils.h \
|
|
||||||
$(srcdir)/testcode/ldns-testpkts.h \
|
|
||||||
$(srcdir)/util/data/dname.h \
|
$(srcdir)/util/data/dname.h \
|
||||||
$(srcdir)/util/regional.h $(srcdir)/util/alloc.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h
|
$(srcdir)/util/regional.h $(srcdir)/util/alloc.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h
|
||||||
readhex.lo readhex.o: $(srcdir)/testcode/readhex.c config.h $(srcdir)/testcode/readhex.h \
|
readhex.lo readhex.o: $(srcdir)/testcode/readhex.c config.h $(srcdir)/testcode/readhex.h \
|
||||||
|
|
@ -916,8 +882,7 @@ ldns-testpkts.lo ldns-testpkts.o: $(srcdir)/testcode/ldns-testpkts.c config.h \
|
||||||
$(srcdir)/testcode/ldns-testpkts.h
|
$(srcdir)/testcode/ldns-testpkts.h
|
||||||
acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \
|
acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \
|
||||||
$(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \
|
$(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/config_file.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/net_help.h
|
||||||
$(srcdir)/util/net_help.h
|
|
||||||
cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h \
|
cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h \
|
||||||
$(srcdir)/daemon/cachedump.h \
|
$(srcdir)/daemon/cachedump.h \
|
||||||
$(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
|
|
@ -951,9 +916,9 @@ remote.lo remote.o: $(srcdir)/daemon/remote.c config.h \
|
||||||
$(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/localzone.h \
|
$(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/localzone.h \
|
||||||
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \
|
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \
|
||||||
$(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \
|
$(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \
|
||||||
$(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \
|
$(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \
|
||||||
$(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/iterator/iter_delegpt.h \
|
$(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \
|
||||||
$(srcdir)/services/outside_network.h
|
$(srcdir)/iterator/iter_delegpt.h $(srcdir)/services/outside_network.h
|
||||||
stats.lo stats.o: $(srcdir)/daemon/stats.c config.h \
|
stats.lo stats.o: $(srcdir)/daemon/stats.c config.h \
|
||||||
$(srcdir)/daemon/stats.h \
|
$(srcdir)/daemon/stats.h \
|
||||||
$(srcdir)/util/timehist.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/timehist.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
|
|
@ -968,8 +933,8 @@ unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/cache/rrset.h \
|
$(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/cache/rrset.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/services/cache/infra.h \
|
$(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/module.h \
|
||||||
$(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/net_help.h \
|
$(srcdir)/util/net_help.h \
|
||||||
$(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
|
$(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
|
||||||
worker.lo worker.o: $(srcdir)/daemon/worker.c config.h \
|
worker.lo worker.o: $(srcdir)/daemon/worker.c config.h \
|
||||||
|
|
@ -978,8 +943,7 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/daemon/stats.h \
|
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/daemon/stats.h \
|
||||||
$(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \
|
$(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \
|
||||||
$(srcdir)/daemon/remote.h \
|
$(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
|
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \
|
||||||
$(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
|
$(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
|
||||||
$(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
|
$(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
|
||||||
|
|
@ -1003,8 +967,7 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/daemon/stats.h \
|
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/daemon/stats.h \
|
||||||
$(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \
|
$(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \
|
||||||
$(srcdir)/daemon/remote.h \
|
$(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
|
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \
|
||||||
$(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
|
$(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
|
||||||
$(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
|
$(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
|
||||||
|
|
@ -1013,8 +976,7 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h \
|
||||||
$(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/autotrust.h
|
$(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/autotrust.h
|
||||||
acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \
|
acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \
|
||||||
$(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \
|
$(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/config_file.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/net_help.h
|
||||||
$(srcdir)/util/net_help.h
|
|
||||||
daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \
|
daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \
|
||||||
$(srcdir)/daemon/daemon.h \
|
$(srcdir)/daemon/daemon.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h $(srcdir)/daemon/worker.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h $(srcdir)/daemon/worker.h \
|
||||||
|
|
@ -1043,11 +1005,10 @@ fake_event.lo fake_event.o: $(srcdir)/testcode/fake_event.c config.h $(srcdir)/t
|
||||||
$(srcdir)/util/netevent.h \
|
$(srcdir)/util/netevent.h \
|
||||||
$(srcdir)/util/net_help.h \
|
$(srcdir)/util/net_help.h \
|
||||||
$(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
|
$(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
|
||||||
$(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \
|
$(srcdir)/util/data/dname.h $(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h \
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
|
$(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/infra.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/testcode/replay.h \
|
$(srcdir)/util/rtt.h $(srcdir)/testcode/replay.h $(srcdir)/testcode/ldns-testpkts.h \
|
||||||
$(srcdir)/testcode/ldns-testpkts.h \
|
|
||||||
$(srcdir)/util/fptr_wlist.h \
|
$(srcdir)/util/fptr_wlist.h \
|
||||||
$(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
|
$(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
|
||||||
lock_verify.lo lock_verify.o: $(srcdir)/testcode/lock_verify.c config.h $(srcdir)/util/log.h \
|
lock_verify.lo lock_verify.o: $(srcdir)/testcode/lock_verify.c config.h $(srcdir)/util/log.h \
|
||||||
|
|
@ -1074,9 +1035,8 @@ memstats.lo memstats.o: $(srcdir)/testcode/memstats.c config.h $(srcdir)/util/lo
|
||||||
$(srcdir)/util/tube.h \
|
$(srcdir)/util/tube.h \
|
||||||
$(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
|
$(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
|
||||||
unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/smallapp/unbound-checkconf.c config.h $(srcdir)/util/log.h \
|
unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/smallapp/unbound-checkconf.c config.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/config_file.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
|
||||||
$(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/net_help.h \
|
$(srcdir)/util/net_help.h \
|
||||||
$(srcdir)/util/regional.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \
|
$(srcdir)/util/regional.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \
|
||||||
|
|
@ -1095,20 +1055,20 @@ context.lo context.o: $(srcdir)/libunbound/context.c config.h $(srcdir)/libunbou
|
||||||
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/module.h \
|
$(srcdir)/util/module.h \
|
||||||
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/config_file.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h \
|
||||||
$(srcdir)/util/net_help.h $(srcdir)/services/localzone.h $(srcdir)/services/cache/rrset.h \
|
$(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \
|
||||||
$(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h
|
$(srcdir)/util/rtt.h
|
||||||
libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h config.h \
|
libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h config.h \
|
||||||
$(srcdir)/libunbound/context.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/libunbound/context.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/alloc.h \
|
$(srcdir)/util/alloc.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/libunbound/libworker.h \
|
$(srcdir)/libunbound/libworker.h $(srcdir)/util/config_file.h $(srcdir)/util/module.h \
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/regional.h \
|
||||||
$(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h \
|
$(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h $(srcdir)/services/localzone.h \
|
||||||
$(srcdir)/services/localzone.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
|
$(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \
|
||||||
$(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h
|
$(srcdir)/util/storage/slabhash.h
|
||||||
libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h \
|
libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h \
|
||||||
$(srcdir)/libunbound/libworker.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/libunbound/libworker.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \
|
||||||
|
|
@ -1127,31 +1087,26 @@ asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libu
|
||||||
$(srcdir)/util/storage/lruhash.h \
|
$(srcdir)/util/storage/lruhash.h \
|
||||||
|
|
||||||
streamtcp.lo streamtcp.o: $(srcdir)/testcode/streamtcp.c config.h \
|
streamtcp.lo streamtcp.o: $(srcdir)/testcode/streamtcp.c config.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/locks.h \
|
||||||
$(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/log.h $(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/dname.h \
|
$(srcdir)/util/data/dname.h
|
||||||
|
|
||||||
perf.lo perf.o: $(srcdir)/testcode/perf.c config.h \
|
perf.lo perf.o: $(srcdir)/testcode/perf.c config.h \
|
||||||
$(srcdir)/util/log.h $(srcdir)/util/locks.h \
|
$(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/locks.h $(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgreply.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h
|
||||||
delayer.lo delayer.o: $(srcdir)/testcode/delayer.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \
|
delayer.lo delayer.o: $(srcdir)/testcode/delayer.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/config_file.h
|
$(srcdir)/util/config_file.h
|
||||||
harvest.lo harvest.o: $(srcdir)/testcode/harvest.c config.h \
|
harvest.lo harvest.o: $(srcdir)/testcode/harvest.c config.h \
|
||||||
$(srcdir)/libunbound/unbound.h
|
$(srcdir)/libunbound/unbound.h
|
||||||
unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h \
|
unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/log.h \
|
$(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h
|
||||||
$(srcdir)/util/config_file.h \
|
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/net_help.h
|
|
||||||
unbound-anchor.lo unbound-anchor.o: $(srcdir)/smallapp/unbound-anchor.c config.h $(srcdir)/libunbound/unbound.h \
|
unbound-anchor.lo unbound-anchor.o: $(srcdir)/smallapp/unbound-anchor.c config.h $(srcdir)/libunbound/unbound.h \
|
||||||
|
|
||||||
petal.lo petal.o: $(srcdir)/testcode/petal.c config.h \
|
petal.lo petal.o: $(srcdir)/testcode/petal.c config.h
|
||||||
|
|
||||||
pythonmod_utils.lo pythonmod_utils.o: $(srcdir)/pythonmod/pythonmod_utils.c config.h $(srcdir)/util/module.h \
|
pythonmod_utils.lo pythonmod_utils.o: $(srcdir)/pythonmod/pythonmod_utils.c config.h $(srcdir)/util/module.h \
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
|
||||||
$(srcdir)/util/data/msgreply.h \
|
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/packed_rrset.h \
|
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/util/netevent.h \
|
$(srcdir)/util/netevent.h \
|
||||||
$(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \
|
$(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \
|
||||||
|
|
@ -1164,8 +1119,8 @@ win_svc.lo win_svc.o: $(srcdir)/winrc/win_svc.c config.h $(srcdir)/winrc/win_svc
|
||||||
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h \
|
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/data/msgparse.h \
|
$(srcdir)/util/data/msgparse.h \
|
||||||
$(srcdir)/daemon/stats.h \
|
$(srcdir)/daemon/stats.h \
|
||||||
$(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \
|
$(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h \
|
||||||
$(srcdir)/util/config_file.h $(srcdir)/util/winsock_event.h
|
$(srcdir)/util/winsock_event.h
|
||||||
w_inst.lo w_inst.o: $(srcdir)/winrc/w_inst.c config.h $(srcdir)/winrc/w_inst.h $(srcdir)/winrc/win_svc.h
|
w_inst.lo w_inst.o: $(srcdir)/winrc/w_inst.c config.h $(srcdir)/winrc/w_inst.h $(srcdir)/winrc/win_svc.h
|
||||||
unbound-service-install.lo unbound-service-install.o: $(srcdir)/winrc/unbound-service-install.c config.h \
|
unbound-service-install.lo unbound-service-install.o: $(srcdir)/winrc/unbound-service-install.c config.h \
|
||||||
$(srcdir)/winrc/w_inst.h
|
$(srcdir)/winrc/w_inst.h
|
||||||
|
|
|
||||||
236
daemon/remote.c
236
daemon/remote.c
|
|
@ -68,6 +68,7 @@
|
||||||
#include "validator/validator.h"
|
#include "validator/validator.h"
|
||||||
#include "validator/val_kcache.h"
|
#include "validator/val_kcache.h"
|
||||||
#include "validator/val_kentry.h"
|
#include "validator/val_kentry.h"
|
||||||
|
#include "validator/val_anchor.h"
|
||||||
#include "iterator/iterator.h"
|
#include "iterator/iterator.h"
|
||||||
#include "iterator/iter_fwd.h"
|
#include "iterator/iter_fwd.h"
|
||||||
#include "iterator/iter_hints.h"
|
#include "iterator/iter_hints.h"
|
||||||
|
|
@ -1337,12 +1338,12 @@ print_root_fwds(SSL* ssl, struct iter_forwards* fwds, uint8_t* root)
|
||||||
|
|
||||||
/** parse args into delegpt */
|
/** parse args into delegpt */
|
||||||
static struct delegpt*
|
static struct delegpt*
|
||||||
parse_delegpt(SSL* ssl, char* args, uint8_t* root)
|
parse_delegpt(SSL* ssl, char* args, uint8_t* nm, int allow_names)
|
||||||
{
|
{
|
||||||
/* parse args and add in */
|
/* parse args and add in */
|
||||||
char* p = args;
|
char* p = args;
|
||||||
char* todo;
|
char* todo;
|
||||||
struct delegpt* dp = delegpt_create_mlc(root);
|
struct delegpt* dp = delegpt_create_mlc(nm);
|
||||||
struct sockaddr_storage addr;
|
struct sockaddr_storage addr;
|
||||||
socklen_t addrlen;
|
socklen_t addrlen;
|
||||||
if(!dp) {
|
if(!dp) {
|
||||||
|
|
@ -1358,14 +1359,37 @@ parse_delegpt(SSL* ssl, char* args, uint8_t* root)
|
||||||
}
|
}
|
||||||
/* parse address */
|
/* parse address */
|
||||||
if(!extstrtoaddr(todo, &addr, &addrlen)) {
|
if(!extstrtoaddr(todo, &addr, &addrlen)) {
|
||||||
(void)ssl_printf(ssl, "error cannot parse"
|
if(allow_names) {
|
||||||
" IP address '%s'\n", todo);
|
uint8_t* n = NULL;
|
||||||
return NULL;
|
size_t ln;
|
||||||
}
|
int lb;
|
||||||
/* add address */
|
if(!parse_arg_name(ssl, todo, &n, &ln, &lb)) {
|
||||||
if(!delegpt_add_addr_mlc(dp, &addr, addrlen, 0, 0)) {
|
(void)ssl_printf(ssl, "error cannot "
|
||||||
(void)ssl_printf(ssl, "error out of memory\n");
|
"parse IP address or name "
|
||||||
return NULL;
|
"'%s'\n", todo);
|
||||||
|
delegpt_free_mlc(dp);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if(!delegpt_add_ns_mlc(dp, n, 0)) {
|
||||||
|
(void)ssl_printf(ssl, "error out of memory\n");
|
||||||
|
delegpt_free_mlc(dp);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
free(n);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
(void)ssl_printf(ssl, "error cannot parse"
|
||||||
|
" IP address '%s'\n", todo);
|
||||||
|
delegpt_free_mlc(dp);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* add address */
|
||||||
|
if(!delegpt_add_addr_mlc(dp, &addr, addrlen, 0, 0)) {
|
||||||
|
(void)ssl_printf(ssl, "error out of memory\n");
|
||||||
|
delegpt_free_mlc(dp);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return dp;
|
return dp;
|
||||||
|
|
@ -1393,16 +1417,186 @@ do_forward(SSL* ssl, struct worker* worker, char* args)
|
||||||
forwards_delete_zone(fwd, LDNS_RR_CLASS_IN, root);
|
forwards_delete_zone(fwd, LDNS_RR_CLASS_IN, root);
|
||||||
} else {
|
} else {
|
||||||
struct delegpt* dp;
|
struct delegpt* dp;
|
||||||
if(!(dp = parse_delegpt(ssl, args, root)))
|
if(!(dp = parse_delegpt(ssl, args, root, 0)))
|
||||||
return;
|
return;
|
||||||
if(!forwards_add_zone(fwd, LDNS_RR_CLASS_IN, dp)) {
|
if(!forwards_add_zone(fwd, LDNS_RR_CLASS_IN, dp)) {
|
||||||
(void)ssl_printf(ssl, "error out of memory\n");
|
(void)ssl_printf(ssl, "error out of memory\n");
|
||||||
|
delegpt_free_mlc(dp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
send_ok(ssl);
|
send_ok(ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
parse_fs_args(SSL* ssl, char* args, uint8_t** nm, struct delegpt** dp,
|
||||||
|
int* insecure, int* prime)
|
||||||
|
{
|
||||||
|
char* zonename;
|
||||||
|
char* rest;
|
||||||
|
size_t nmlen;
|
||||||
|
int nmlabs;
|
||||||
|
/* parse all -x args */
|
||||||
|
while(args[0] == '+') {
|
||||||
|
if(!find_arg2(ssl, args, &rest))
|
||||||
|
return 0;
|
||||||
|
while(*(++args) != 0) {
|
||||||
|
if(*args == 'i' && insecure)
|
||||||
|
*insecure = 1;
|
||||||
|
else if(*args == 'p' && prime)
|
||||||
|
*prime = 1;
|
||||||
|
else {
|
||||||
|
(void)ssl_printf(ssl, "error: unknown option %s\n", args);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
args = rest;
|
||||||
|
}
|
||||||
|
/* parse name */
|
||||||
|
if(dp) {
|
||||||
|
if(!find_arg2(ssl, args, &rest))
|
||||||
|
return 0;
|
||||||
|
zonename = args;
|
||||||
|
args = rest;
|
||||||
|
} else zonename = args;
|
||||||
|
if(!parse_arg_name(ssl, zonename, nm, &nmlen, &nmlabs))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/* parse dp */
|
||||||
|
if(dp) {
|
||||||
|
if(!(*dp = parse_delegpt(ssl, args, *nm, 1))) {
|
||||||
|
free(*nm);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** do the forward_add command */
|
||||||
|
static void
|
||||||
|
do_forward_add(SSL* ssl, struct worker* worker, char* args)
|
||||||
|
{
|
||||||
|
struct iter_forwards* fwd = worker->env.fwds;
|
||||||
|
int insecure = 0;
|
||||||
|
uint8_t* nm = NULL;
|
||||||
|
struct delegpt* dp = NULL;
|
||||||
|
if(!parse_fs_args(ssl, args, &nm, &dp, &insecure, NULL)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(insecure) {
|
||||||
|
if(!anchors_add_insecure(worker->env.anchors, LDNS_RR_CLASS_IN,
|
||||||
|
nm)) {
|
||||||
|
(void)ssl_printf(ssl, "error out of memory\n");
|
||||||
|
delegpt_free_mlc(dp);
|
||||||
|
free(nm);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!forwards_add_zone(fwd, LDNS_RR_CLASS_IN, dp)) {
|
||||||
|
(void)ssl_printf(ssl, "error out of memory\n");
|
||||||
|
delegpt_free_mlc(dp);
|
||||||
|
free(nm);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
free(nm);
|
||||||
|
send_ok(ssl);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** do the forward_remove command */
|
||||||
|
static void
|
||||||
|
do_forward_remove(SSL* ssl, struct worker* worker, char* args)
|
||||||
|
{
|
||||||
|
struct iter_forwards* fwd = worker->env.fwds;
|
||||||
|
int insecure = 0;
|
||||||
|
uint8_t* nm = NULL;
|
||||||
|
if(!parse_fs_args(ssl, args, &nm, NULL, &insecure, NULL)) {
|
||||||
|
free(nm);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(insecure)
|
||||||
|
anchors_delete_insecure(worker->env.anchors, LDNS_RR_CLASS_IN,
|
||||||
|
nm);
|
||||||
|
forwards_delete_zone(fwd, LDNS_RR_CLASS_IN, nm);
|
||||||
|
free(nm);
|
||||||
|
send_ok(ssl);
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct iter_hints*
|
||||||
|
get_iter_hints(struct worker* worker)
|
||||||
|
{
|
||||||
|
int m;
|
||||||
|
struct iter_env* ie;
|
||||||
|
m = modstack_find(&worker->env.mesh->mods, "iterator");
|
||||||
|
if(m == -1)
|
||||||
|
return NULL;
|
||||||
|
ie = (struct iter_env*)worker->env.modinfo[m];
|
||||||
|
return ie->hints;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** do the stub_add command */
|
||||||
|
static void
|
||||||
|
do_stub_add(SSL* ssl, struct worker* worker, char* args)
|
||||||
|
{
|
||||||
|
struct iter_forwards* fwd = worker->env.fwds;
|
||||||
|
struct iter_hints* hints = get_iter_hints(worker);
|
||||||
|
int insecure = 0, prime = 0;
|
||||||
|
uint8_t* nm = NULL;
|
||||||
|
struct delegpt* dp = NULL;
|
||||||
|
if(!parse_fs_args(ssl, args, &nm, &dp, &insecure, &prime)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(insecure) {
|
||||||
|
if(!anchors_add_insecure(worker->env.anchors, LDNS_RR_CLASS_IN,
|
||||||
|
nm)) {
|
||||||
|
(void)ssl_printf(ssl, "error out of memory\n");
|
||||||
|
delegpt_free_mlc(dp);
|
||||||
|
free(nm);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!forwards_add_stub_hole(fwd, LDNS_RR_CLASS_IN, nm)) {
|
||||||
|
if(insecure) anchors_delete_insecure(worker->env.anchors,
|
||||||
|
LDNS_RR_CLASS_IN, nm);
|
||||||
|
(void)ssl_printf(ssl, "error out of memory\n");
|
||||||
|
delegpt_free_mlc(dp);
|
||||||
|
free(nm);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!hints_add_stub(hints, LDNS_RR_CLASS_IN, dp, !prime)) {
|
||||||
|
(void)ssl_printf(ssl, "error out of memory\n");
|
||||||
|
forwards_delete_stub_hole(fwd, LDNS_RR_CLASS_IN, nm);
|
||||||
|
if(insecure) anchors_delete_insecure(worker->env.anchors,
|
||||||
|
LDNS_RR_CLASS_IN, nm);
|
||||||
|
delegpt_free_mlc(dp);
|
||||||
|
free(nm);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
free(nm);
|
||||||
|
send_ok(ssl);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** do the stub_remove command */
|
||||||
|
static void
|
||||||
|
do_stub_remove(SSL* ssl, struct worker* worker, char* args)
|
||||||
|
{
|
||||||
|
struct iter_forwards* fwd = worker->env.fwds;
|
||||||
|
struct iter_hints* hints = get_iter_hints(worker);
|
||||||
|
int insecure = 0;
|
||||||
|
uint8_t* nm = NULL;
|
||||||
|
if(!parse_fs_args(ssl, args, &nm, NULL, &insecure, NULL)) {
|
||||||
|
free(nm);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(insecure)
|
||||||
|
anchors_delete_insecure(worker->env.anchors, LDNS_RR_CLASS_IN,
|
||||||
|
nm);
|
||||||
|
forwards_delete_stub_hole(fwd, LDNS_RR_CLASS_IN, nm);
|
||||||
|
hints_delete_stub(hints, LDNS_RR_CLASS_IN, nm);
|
||||||
|
free(nm);
|
||||||
|
send_ok(ssl);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** do the status command */
|
/** do the status command */
|
||||||
static void
|
static void
|
||||||
do_status(SSL* ssl, struct worker* worker)
|
do_status(SSL* ssl, struct worker* worker)
|
||||||
|
|
@ -1779,6 +1973,26 @@ execute_cmd(struct daemon_remote* rc, SSL* ssl, char* cmd,
|
||||||
} else if(cmdcmp(p, "list_local_data", 15)) {
|
} else if(cmdcmp(p, "list_local_data", 15)) {
|
||||||
do_list_local_data(ssl, worker);
|
do_list_local_data(ssl, worker);
|
||||||
return;
|
return;
|
||||||
|
} else if(cmdcmp(p, "stub_add", 8)) {
|
||||||
|
/* must always distribute this cmd */
|
||||||
|
if(rc) distribute_cmd(rc, ssl, cmd);
|
||||||
|
do_stub_add(ssl, worker, skipwhite(p+8));
|
||||||
|
return;
|
||||||
|
} else if(cmdcmp(p, "stub_remove", 11)) {
|
||||||
|
/* must always distribute this cmd */
|
||||||
|
if(rc) distribute_cmd(rc, ssl, cmd);
|
||||||
|
do_stub_remove(ssl, worker, skipwhite(p+11));
|
||||||
|
return;
|
||||||
|
} else if(cmdcmp(p, "forward_add", 11)) {
|
||||||
|
/* must always distribute this cmd */
|
||||||
|
if(rc) distribute_cmd(rc, ssl, cmd);
|
||||||
|
do_forward_add(ssl, worker, skipwhite(p+11));
|
||||||
|
return;
|
||||||
|
} else if(cmdcmp(p, "forward_remove", 14)) {
|
||||||
|
/* must always distribute this cmd */
|
||||||
|
if(rc) distribute_cmd(rc, ssl, cmd);
|
||||||
|
do_forward_remove(ssl, worker, skipwhite(p+14));
|
||||||
|
return;
|
||||||
} else if(cmdcmp(p, "forward", 7)) {
|
} else if(cmdcmp(p, "forward", 7)) {
|
||||||
/* must always distribute this cmd */
|
/* must always distribute this cmd */
|
||||||
if(rc) distribute_cmd(rc, ssl, cmd);
|
if(rc) distribute_cmd(rc, ssl, cmd);
|
||||||
|
|
|
||||||
|
|
@ -148,7 +148,7 @@ worker_mem_report(struct worker* ATTR_UNUSED(worker),
|
||||||
#ifdef UNBOUND_ALLOC_STATS
|
#ifdef UNBOUND_ALLOC_STATS
|
||||||
/* debug func in validator module */
|
/* debug func in validator module */
|
||||||
size_t total, front, back, mesh, msg, rrset, infra, ac, superac;
|
size_t total, front, back, mesh, msg, rrset, infra, ac, superac;
|
||||||
size_t me, iter, val;
|
size_t me, iter, val, anch;
|
||||||
int i;
|
int i;
|
||||||
if(verbosity < VERB_ALGO)
|
if(verbosity < VERB_ALGO)
|
||||||
return;
|
return;
|
||||||
|
|
@ -160,6 +160,7 @@ worker_mem_report(struct worker* ATTR_UNUSED(worker),
|
||||||
mesh = mesh_get_mem(worker->env.mesh);
|
mesh = mesh_get_mem(worker->env.mesh);
|
||||||
ac = alloc_get_mem(&worker->alloc);
|
ac = alloc_get_mem(&worker->alloc);
|
||||||
superac = alloc_get_mem(&worker->daemon->superalloc);
|
superac = alloc_get_mem(&worker->daemon->superalloc);
|
||||||
|
anch = anchors_get_mem(worker->env.anchors);
|
||||||
iter = 0;
|
iter = 0;
|
||||||
val = 0;
|
val = 0;
|
||||||
for(i=0; i<worker->env.mesh->mods.num; i++) {
|
for(i=0; i<worker->env.mesh->mods.num; i++) {
|
||||||
|
|
@ -185,12 +186,12 @@ worker_mem_report(struct worker* ATTR_UNUSED(worker),
|
||||||
}
|
}
|
||||||
total = front+back+mesh+msg+rrset+infra+iter+val+ac+superac+me;
|
total = front+back+mesh+msg+rrset+infra+iter+val+ac+superac+me;
|
||||||
log_info("Memory conditions: %u front=%u back=%u mesh=%u msg=%u "
|
log_info("Memory conditions: %u front=%u back=%u mesh=%u msg=%u "
|
||||||
"rrset=%u infra=%u iter=%u val=%u "
|
"rrset=%u infra=%u iter=%u val=%u anchors=%u "
|
||||||
"alloccache=%u globalalloccache=%u me=%u",
|
"alloccache=%u globalalloccache=%u me=%u",
|
||||||
(unsigned)total, (unsigned)front, (unsigned)back,
|
(unsigned)total, (unsigned)front, (unsigned)back,
|
||||||
(unsigned)mesh, (unsigned)msg, (unsigned)rrset,
|
(unsigned)mesh, (unsigned)msg, (unsigned)rrset,
|
||||||
(unsigned)infra, (unsigned)iter, (unsigned)val, (unsigned)ac,
|
(unsigned)infra, (unsigned)iter, (unsigned)val, (unsigned)anch,
|
||||||
(unsigned)superac, (unsigned)me);
|
(unsigned)ac, (unsigned)superac, (unsigned)me);
|
||||||
debug_total_mem(total);
|
debug_total_mem(total);
|
||||||
#else /* no UNBOUND_ALLOC_STATS */
|
#else /* no UNBOUND_ALLOC_STATS */
|
||||||
size_t val = 0;
|
size_t val = 0;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
15 February 2012: Wouter
|
15 February 2012: Wouter
|
||||||
- Fix forward-zone memory, uses malloc and frees original root dp.
|
- Fix forward-zone memory, uses malloc and frees original root dp.
|
||||||
- iter hints (stubs) uses malloc inside for more dynamicity.
|
- iter hints (stubs) uses malloc inside for more dynamicity.
|
||||||
|
- unbound-control forward_add, forward_remove, stub_add, stub_remove
|
||||||
|
can modify stubs and forwards for running unbound (on mobile computer)
|
||||||
|
they can also add and remove domain-insecure for the zone.
|
||||||
|
|
||||||
14 February 2012: Wouter
|
14 February 2012: Wouter
|
||||||
- Fix sticky NS (ghost domain problem) if prefetch is yes.
|
- Fix sticky NS (ghost domain problem) if prefetch is yes.
|
||||||
|
|
|
||||||
|
|
@ -190,6 +190,27 @@ List the local zones in use. These are printed one per line with zone type.
|
||||||
.B list_local_data
|
.B list_local_data
|
||||||
List the local data RRs in use. The resource records are printed.
|
List the local data RRs in use. The resource records are printed.
|
||||||
.TP
|
.TP
|
||||||
|
.B forward_add \fR[\fI+i\fR] \fIzone addr ...
|
||||||
|
Add a new forward zone to running unbound. With +i option also adds a
|
||||||
|
\fIdomain\-insecure\fR for the zone (so it can resolve insecurely if you have
|
||||||
|
a DNSSEC root trust anchor configured for other names).
|
||||||
|
The addr can be IP4, IP6 or nameserver names, like \fIforward-zone\fR config
|
||||||
|
in unbound.conf.
|
||||||
|
.TP
|
||||||
|
.B forward_remove \fR[\fI+i\fR] \fIzone
|
||||||
|
Remove a forward zone from running unbound. The +i also removes a
|
||||||
|
\fIdomain\-insecure\fR for the zone.
|
||||||
|
.TP
|
||||||
|
.B stub_add \fR[\fI+ip\fR] \fIzone addr ...
|
||||||
|
Add a new stub zone to running unbound. With +i option also adds a
|
||||||
|
\fIdomain\-insecure\fR for the zone. With +p the stub zone is set to prime,
|
||||||
|
without it it is set to notprime. The addr can be IP4, IP6 or nameserver
|
||||||
|
names, like the \fIstub-zone\fR config in unbound.conf.
|
||||||
|
.TP
|
||||||
|
.B stub_remove \fR[\fI+i\fR] \fIzone
|
||||||
|
Remove a stub zone from running unbound. The +i also removes a
|
||||||
|
\fIdomain\-insecure\fR for the zone.
|
||||||
|
.TP
|
||||||
.B forward \fR[\fIoff\fR | \fIaddr ...\fR ]
|
.B forward \fR[\fIoff\fR | \fIaddr ...\fR ]
|
||||||
Setup forwarding mode. Configures if the server should ask other upstream
|
Setup forwarding mode. Configures if the server should ask other upstream
|
||||||
nameservers, should go to the internet root nameservers itself, or show
|
nameservers, should go to the internet root nameservers itself, or show
|
||||||
|
|
|
||||||
|
|
@ -284,28 +284,35 @@ need_hole_insert(rbtree_t* tree, struct iter_forward_zone* zone)
|
||||||
return 0; /* no forwards above, no holes needed */
|
return 0; /* no forwards above, no holes needed */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** insert a stub hole (if necessary) for stub name */
|
||||||
|
static int
|
||||||
|
fwd_add_stub_hole(struct iter_forwards* fwd, uint16_t c, uint8_t* nm)
|
||||||
|
{
|
||||||
|
struct iter_forward_zone key;
|
||||||
|
key.node.key = &key;
|
||||||
|
key.dclass = c;
|
||||||
|
key.name = nm;
|
||||||
|
key.namelabs = dname_count_size_labels(key.name, &key.namelen);
|
||||||
|
if(need_hole_insert(fwd->tree, &key)) {
|
||||||
|
return forwards_insert_data(fwd, key.dclass, key.name,
|
||||||
|
key.namelen, key.namelabs, NULL);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/** make NULL entries for stubs */
|
/** make NULL entries for stubs */
|
||||||
static int
|
static int
|
||||||
make_stub_holes(struct iter_forwards* fwd, struct config_file* cfg)
|
make_stub_holes(struct iter_forwards* fwd, struct config_file* cfg)
|
||||||
{
|
{
|
||||||
struct config_stub* s;
|
struct config_stub* s;
|
||||||
struct iter_forward_zone key;
|
|
||||||
key.node.key = &key;
|
|
||||||
key.dclass = LDNS_RR_CLASS_IN;
|
|
||||||
for(s = cfg->stubs; s; s = s->next) {
|
for(s = cfg->stubs; s; s = s->next) {
|
||||||
ldns_rdf* rdf = ldns_dname_new_frm_str(s->name);
|
ldns_rdf* rdf = ldns_dname_new_frm_str(s->name);
|
||||||
if(!rdf) {
|
if(!rdf) {
|
||||||
log_err("cannot parse stub name '%s'", s->name);
|
log_err("cannot parse stub name '%s'", s->name);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
key.name = ldns_rdf_data(rdf);
|
if(!fwd_add_stub_hole(fwd, LDNS_RR_CLASS_IN,
|
||||||
key.namelabs = dname_count_size_labels(key.name, &key.namelen);
|
ldns_rdf_data(rdf))) {
|
||||||
if(!need_hole_insert(fwd->tree, &key)) {
|
|
||||||
ldns_rdf_deep_free(rdf);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(!forwards_insert_data(fwd, key.dclass, key.name,
|
|
||||||
key.namelen, key.namelabs, NULL)) {
|
|
||||||
ldns_rdf_deep_free(rdf);
|
ldns_rdf_deep_free(rdf);
|
||||||
log_err("out of memory");
|
log_err("out of memory");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -453,8 +460,8 @@ forwards_add_zone(struct iter_forwards* fwd, uint16_t c, struct delegpt* dp)
|
||||||
{
|
{
|
||||||
struct iter_forward_zone *z;
|
struct iter_forward_zone *z;
|
||||||
if((z=fwd_zone_find(fwd, c, dp->name)) != NULL) {
|
if((z=fwd_zone_find(fwd, c, dp->name)) != NULL) {
|
||||||
fwd_zone_free(z);
|
|
||||||
(void)rbtree_delete(fwd->tree, &z->node);
|
(void)rbtree_delete(fwd->tree, &z->node);
|
||||||
|
fwd_zone_free(z);
|
||||||
}
|
}
|
||||||
if(!forwards_insert(fwd, c, dp))
|
if(!forwards_insert(fwd, c, dp))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -468,8 +475,31 @@ forwards_delete_zone(struct iter_forwards* fwd, uint16_t c, uint8_t* nm)
|
||||||
struct iter_forward_zone *z;
|
struct iter_forward_zone *z;
|
||||||
if(!(z=fwd_zone_find(fwd, c, nm)))
|
if(!(z=fwd_zone_find(fwd, c, nm)))
|
||||||
return; /* nothing to do */
|
return; /* nothing to do */
|
||||||
fwd_zone_free(z);
|
|
||||||
(void)rbtree_delete(fwd->tree, &z->node);
|
(void)rbtree_delete(fwd->tree, &z->node);
|
||||||
|
fwd_zone_free(z);
|
||||||
|
fwd_init_parents(fwd);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
forwards_add_stub_hole(struct iter_forwards* fwd, uint16_t c, uint8_t* nm)
|
||||||
|
{
|
||||||
|
if(!fwd_add_stub_hole(fwd, c, nm)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
fwd_init_parents(fwd);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
forwards_delete_stub_hole(struct iter_forwards* fwd, uint16_t c, uint8_t* nm)
|
||||||
|
{
|
||||||
|
struct iter_forward_zone *z;
|
||||||
|
if(!(z=fwd_zone_find(fwd, c, nm)))
|
||||||
|
return; /* nothing to do */
|
||||||
|
if(z->dp != NULL)
|
||||||
|
return; /* not a stub hole */
|
||||||
|
(void)rbtree_delete(fwd->tree, &z->node);
|
||||||
|
fwd_zone_free(z);
|
||||||
fwd_init_parents(fwd);
|
fwd_init_parents(fwd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,6 @@
|
||||||
#include "util/rbtree.h"
|
#include "util/rbtree.h"
|
||||||
struct config_file;
|
struct config_file;
|
||||||
struct delegpt;
|
struct delegpt;
|
||||||
struct regional;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Iterator forward zones structure
|
* Iterator forward zones structure
|
||||||
|
|
@ -152,9 +151,7 @@ int fwd_cmp(const void* k1, const void* k2);
|
||||||
* @param fwd: the forward data structure
|
* @param fwd: the forward data structure
|
||||||
* @param c: class of zone
|
* @param c: class of zone
|
||||||
* @param dp: delegation point with name and target nameservers for new
|
* @param dp: delegation point with name and target nameservers for new
|
||||||
* forward zone. This delegation point and all its data must be
|
* forward zone. malloced.
|
||||||
* malloced in the fwd->region. (then it is freed when the fwd is
|
|
||||||
* deleted).
|
|
||||||
* @return false on failure (out of memory);
|
* @return false on failure (out of memory);
|
||||||
*/
|
*/
|
||||||
int forwards_add_zone(struct iter_forwards* fwd, uint16_t c,
|
int forwards_add_zone(struct iter_forwards* fwd, uint16_t c,
|
||||||
|
|
@ -162,12 +159,31 @@ int forwards_add_zone(struct iter_forwards* fwd, uint16_t c,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove zone from forward structure. For external use since it
|
* Remove zone from forward structure. For external use since it
|
||||||
* recalcs the tree parents. Does not actually release any memory, the region
|
* recalcs the tree parents.
|
||||||
* is unchanged.
|
|
||||||
* @param fwd: the forward data structure
|
* @param fwd: the forward data structure
|
||||||
* @param c: class of zone
|
* @param c: class of zone
|
||||||
* @param nm: name of zone (in uncompressed wireformat).
|
* @param nm: name of zone (in uncompressed wireformat).
|
||||||
*/
|
*/
|
||||||
void forwards_delete_zone(struct iter_forwards* fwd, uint16_t c, uint8_t* nm);
|
void forwards_delete_zone(struct iter_forwards* fwd, uint16_t c, uint8_t* nm);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add stub hole (empty entry in forward table, that makes resolution skip
|
||||||
|
* a forward-zone because the stub zone should override the forward zone).
|
||||||
|
* Does not add one if not necessary.
|
||||||
|
* @param fwd: the forward data structure
|
||||||
|
* @param c: class of zone
|
||||||
|
* @param nm: name of zone (in uncompressed wireformat).
|
||||||
|
* @return false on failure (out of memory);
|
||||||
|
*/
|
||||||
|
int forwards_add_stub_hole(struct iter_forwards* fwd, uint16_t c, uint8_t* nm);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove stub hole, if one exists.
|
||||||
|
* @param fwd: the forward data structure
|
||||||
|
* @param c: class of zone
|
||||||
|
* @param nm: name of zone (in uncompressed wireformat).
|
||||||
|
*/
|
||||||
|
void forwards_delete_stub_hole(struct iter_forwards* fwd, uint16_t c,
|
||||||
|
uint8_t* nm);
|
||||||
|
|
||||||
#endif /* ITERATOR_ITER_FWD_H */
|
#endif /* ITERATOR_ITER_FWD_H */
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,6 @@
|
||||||
#include <ldns/rr.h>
|
#include <ldns/rr.h>
|
||||||
#include "iterator/iter_hints.h"
|
#include "iterator/iter_hints.h"
|
||||||
#include "iterator/iter_delegpt.h"
|
#include "iterator/iter_delegpt.h"
|
||||||
#include "util/regional.h"
|
|
||||||
#include "util/log.h"
|
#include "util/log.h"
|
||||||
#include "util/config_file.h"
|
#include "util/config_file.h"
|
||||||
#include "util/net_help.h"
|
#include "util/net_help.h"
|
||||||
|
|
@ -499,3 +498,34 @@ hints_get_mem(struct iter_hints* hints)
|
||||||
}
|
}
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
hints_add_stub(struct iter_hints* hints, uint16_t c, struct delegpt* dp,
|
||||||
|
int noprime)
|
||||||
|
{
|
||||||
|
struct iter_hints_stub *z;
|
||||||
|
if((z=(struct iter_hints_stub*)name_tree_find(&hints->tree,
|
||||||
|
dp->name, dp->namelen, dp->namelabs, c)) != NULL) {
|
||||||
|
(void)rbtree_delete(&hints->tree, &z->node);
|
||||||
|
hints_stub_free(z);
|
||||||
|
}
|
||||||
|
if(!hints_insert(hints, c, dp, noprime))
|
||||||
|
return 0;
|
||||||
|
name_tree_init_parents(&hints->tree);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
hints_delete_stub(struct iter_hints* hints, uint16_t c, uint8_t* nm)
|
||||||
|
{
|
||||||
|
struct iter_hints_stub *z;
|
||||||
|
size_t len;
|
||||||
|
int labs = dname_count_size_labels(nm, &len);
|
||||||
|
if(!(z=(struct iter_hints_stub*)name_tree_find(&hints->tree,
|
||||||
|
nm, len, labs, c)))
|
||||||
|
return; /* nothing to do */
|
||||||
|
(void)rbtree_delete(&hints->tree, &z->node);
|
||||||
|
hints_stub_free(z);
|
||||||
|
name_tree_init_parents(&hints->tree);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,6 @@
|
||||||
struct iter_env;
|
struct iter_env;
|
||||||
struct config_file;
|
struct config_file;
|
||||||
struct delegpt;
|
struct delegpt;
|
||||||
struct regional;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Iterator hints structure
|
* Iterator hints structure
|
||||||
|
|
@ -137,4 +136,26 @@ struct iter_hints_stub* hints_lookup_stub(struct iter_hints* hints,
|
||||||
*/
|
*/
|
||||||
size_t hints_get_mem(struct iter_hints* hints);
|
size_t hints_get_mem(struct iter_hints* hints);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add stub to hints structure. For external use since it recalcs
|
||||||
|
* the tree parents.
|
||||||
|
* @param hints: the hints data structure
|
||||||
|
* @param c: class of zone
|
||||||
|
* @param dp: delegation point with name and target nameservers for new
|
||||||
|
* hints stub. malloced.
|
||||||
|
* @param noprime: set noprime option to true or false on new hint stub.
|
||||||
|
* @return false on failure (out of memory);
|
||||||
|
*/
|
||||||
|
int hints_add_stub(struct iter_hints* hints, uint16_t c, struct delegpt* dp,
|
||||||
|
int noprime);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove stub from hints structure. For external use since it
|
||||||
|
* recalcs the tree parents.
|
||||||
|
* @param hints: the hints data structure
|
||||||
|
* @param c: class of stub zone
|
||||||
|
* @param nm: name of stub zone (in uncompressed wireformat).
|
||||||
|
*/
|
||||||
|
void hints_delete_stub(struct iter_hints* hints, uint16_t c, uint8_t* nm);
|
||||||
|
|
||||||
#endif /* ITERATOR_ITER_HINTS_H */
|
#endif /* ITERATOR_ITER_HINTS_H */
|
||||||
|
|
|
||||||
|
|
@ -104,6 +104,12 @@ usage()
|
||||||
printf(" list_forwards list forward-zones in use\n");
|
printf(" list_forwards list forward-zones in use\n");
|
||||||
printf(" list_local_zones list local-zones in use\n");
|
printf(" list_local_zones list local-zones in use\n");
|
||||||
printf(" list_local_data list local-data RRs in use\n");
|
printf(" list_local_data list local-data RRs in use\n");
|
||||||
|
printf(" forward_add [+i] zone addr.. add forward-zone with servers\n");
|
||||||
|
printf(" forward_remove [+i] zone remove forward zone\n");
|
||||||
|
printf(" stub_add [+ip] zone addr.. add stub-zone with servers\n");
|
||||||
|
printf(" stub_remove [+i] zone remove stub zone\n");
|
||||||
|
printf(" +i also do dnssec insecure point\n");
|
||||||
|
printf(" +p set stub to use priming\n");
|
||||||
printf(" forward [off | addr ...] without arg show forward setup\n");
|
printf(" forward [off | addr ...] without arg show forward setup\n");
|
||||||
printf(" or off to turn off root forwarding\n");
|
printf(" or off to turn off root forwarding\n");
|
||||||
printf(" or give list of ip addresses\n");
|
printf(" or give list of ip addresses\n");
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,6 @@
|
||||||
#include "util/data/dname.h"
|
#include "util/data/dname.h"
|
||||||
#include "util/log.h"
|
#include "util/log.h"
|
||||||
#include "util/net_help.h"
|
#include "util/net_help.h"
|
||||||
#include "util/regional.h"
|
|
||||||
#include "util/config_file.h"
|
#include "util/config_file.h"
|
||||||
#ifdef HAVE_GLOB_H
|
#ifdef HAVE_GLOB_H
|
||||||
#include <glob.h>
|
#include <glob.h>
|
||||||
|
|
@ -77,11 +76,6 @@ anchors_create(void)
|
||||||
struct val_anchors* a = (struct val_anchors*)calloc(1, sizeof(*a));
|
struct val_anchors* a = (struct val_anchors*)calloc(1, sizeof(*a));
|
||||||
if(!a)
|
if(!a)
|
||||||
return NULL;
|
return NULL;
|
||||||
a->region = regional_create();
|
|
||||||
if(!a->region) {
|
|
||||||
free(a);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
a->tree = rbtree_create(anchor_cmp);
|
a->tree = rbtree_create(anchor_cmp);
|
||||||
if(!a->tree) {
|
if(!a->tree) {
|
||||||
anchors_delete(a);
|
anchors_delete(a);
|
||||||
|
|
@ -98,15 +92,45 @@ anchors_create(void)
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** delete assembled rrset */
|
||||||
|
static void
|
||||||
|
assembled_rrset_delete(struct ub_packed_rrset_key* pkey)
|
||||||
|
{
|
||||||
|
if(!pkey) return;
|
||||||
|
if(pkey->entry.data) {
|
||||||
|
struct packed_rrset_data* pd = (struct packed_rrset_data*)
|
||||||
|
pkey->entry.data;
|
||||||
|
free(pd->rr_data);
|
||||||
|
free(pd->rr_ttl);
|
||||||
|
free(pd->rr_len);
|
||||||
|
free(pd);
|
||||||
|
}
|
||||||
|
free(pkey->rk.dname);
|
||||||
|
free(pkey);
|
||||||
|
}
|
||||||
|
|
||||||
/** destroy locks in tree and delete autotrust anchors */
|
/** destroy locks in tree and delete autotrust anchors */
|
||||||
static void
|
static void
|
||||||
anchors_delfunc(rbnode_t* elem, void* ATTR_UNUSED(arg))
|
anchors_delfunc(rbnode_t* elem, void* ATTR_UNUSED(arg))
|
||||||
{
|
{
|
||||||
struct trust_anchor* ta = (struct trust_anchor*)elem;
|
struct trust_anchor* ta = (struct trust_anchor*)elem;
|
||||||
|
if(!ta) return;
|
||||||
if(ta->autr) {
|
if(ta->autr) {
|
||||||
autr_point_delete(ta);
|
autr_point_delete(ta);
|
||||||
} else {
|
} else {
|
||||||
|
struct ta_key* p, *np;
|
||||||
lock_basic_destroy(&ta->lock);
|
lock_basic_destroy(&ta->lock);
|
||||||
|
free(ta->name);
|
||||||
|
p = ta->keylist;
|
||||||
|
while(p) {
|
||||||
|
np = p->next;
|
||||||
|
free(p->data);
|
||||||
|
free(p);
|
||||||
|
p = np;
|
||||||
|
}
|
||||||
|
assembled_rrset_delete(ta->ds_rrset);
|
||||||
|
assembled_rrset_delete(ta->dnskey_rrset);
|
||||||
|
free(ta);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -118,9 +142,9 @@ anchors_delete(struct val_anchors* anchors)
|
||||||
lock_unprotect(&anchors->lock, anchors->autr);
|
lock_unprotect(&anchors->lock, anchors->autr);
|
||||||
lock_unprotect(&anchors->lock, anchors);
|
lock_unprotect(&anchors->lock, anchors);
|
||||||
lock_basic_destroy(&anchors->lock);
|
lock_basic_destroy(&anchors->lock);
|
||||||
traverse_postorder(anchors->tree, anchors_delfunc, NULL);
|
if(anchors->tree)
|
||||||
|
traverse_postorder(anchors->tree, anchors_delfunc, NULL);
|
||||||
free(anchors->tree);
|
free(anchors->tree);
|
||||||
regional_destroy(anchors->region);
|
|
||||||
autr_global_delete(anchors->autr);
|
autr_global_delete(anchors->autr);
|
||||||
free(anchors);
|
free(anchors);
|
||||||
}
|
}
|
||||||
|
|
@ -193,30 +217,34 @@ anchor_find(struct val_anchors* anchors, uint8_t* name, int namelabs,
|
||||||
/** create new trust anchor object */
|
/** create new trust anchor object */
|
||||||
static struct trust_anchor*
|
static struct trust_anchor*
|
||||||
anchor_new_ta(struct val_anchors* anchors, uint8_t* name, int namelabs,
|
anchor_new_ta(struct val_anchors* anchors, uint8_t* name, int namelabs,
|
||||||
size_t namelen, uint16_t dclass)
|
size_t namelen, uint16_t dclass, int lockit)
|
||||||
{
|
{
|
||||||
#ifdef UNBOUND_DEBUG
|
#ifdef UNBOUND_DEBUG
|
||||||
rbnode_t* r;
|
rbnode_t* r;
|
||||||
#endif
|
#endif
|
||||||
struct trust_anchor* ta = (struct trust_anchor*)regional_alloc(
|
struct trust_anchor* ta = (struct trust_anchor*)malloc(
|
||||||
anchors->region, sizeof(struct trust_anchor));
|
sizeof(struct trust_anchor));
|
||||||
if(!ta)
|
if(!ta)
|
||||||
return NULL;
|
return NULL;
|
||||||
memset(ta, 0, sizeof(*ta));
|
memset(ta, 0, sizeof(*ta));
|
||||||
ta->node.key = ta;
|
ta->node.key = ta;
|
||||||
ta->name = regional_alloc_init(anchors->region, name, namelen);
|
ta->name = memdup(name, namelen);
|
||||||
if(!ta->name)
|
if(!ta->name) {
|
||||||
|
free(ta);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
ta->namelabs = namelabs;
|
ta->namelabs = namelabs;
|
||||||
ta->namelen = namelen;
|
ta->namelen = namelen;
|
||||||
ta->dclass = dclass;
|
ta->dclass = dclass;
|
||||||
lock_basic_init(&ta->lock);
|
lock_basic_init(&ta->lock);
|
||||||
lock_basic_lock(&anchors->lock);
|
if(lockit)
|
||||||
|
lock_basic_lock(&anchors->lock);
|
||||||
#ifdef UNBOUND_DEBUG
|
#ifdef UNBOUND_DEBUG
|
||||||
r =
|
r =
|
||||||
#endif
|
#endif
|
||||||
rbtree_insert(anchors->tree, &ta->node);
|
rbtree_insert(anchors->tree, &ta->node);
|
||||||
lock_basic_unlock(&anchors->lock);
|
if(lockit)
|
||||||
|
lock_basic_unlock(&anchors->lock);
|
||||||
log_assert(r != NULL);
|
log_assert(r != NULL);
|
||||||
return ta;
|
return ta;
|
||||||
}
|
}
|
||||||
|
|
@ -237,17 +265,17 @@ anchor_find_key(struct trust_anchor* ta, uint8_t* rdata, size_t rdata_len,
|
||||||
|
|
||||||
/** create new trustanchor key */
|
/** create new trustanchor key */
|
||||||
static struct ta_key*
|
static struct ta_key*
|
||||||
anchor_new_ta_key(struct val_anchors* anchors, uint8_t* rdata, size_t rdata_len,
|
anchor_new_ta_key(uint8_t* rdata, size_t rdata_len, uint16_t type)
|
||||||
uint16_t type)
|
|
||||||
{
|
{
|
||||||
struct ta_key* k = (struct ta_key*)regional_alloc(anchors->region,
|
struct ta_key* k = (struct ta_key*)malloc(sizeof(*k));
|
||||||
sizeof(*k));
|
|
||||||
if(!k)
|
if(!k)
|
||||||
return NULL;
|
return NULL;
|
||||||
memset(k, 0, sizeof(*k));
|
memset(k, 0, sizeof(*k));
|
||||||
k->data = regional_alloc_init(anchors->region, rdata, rdata_len);
|
k->data = memdup(rdata, rdata_len);
|
||||||
if(!k->data)
|
if(!k->data) {
|
||||||
|
free(k);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
k->len = rdata_len;
|
k->len = rdata_len;
|
||||||
k->type = type;
|
k->type = type;
|
||||||
return k;
|
return k;
|
||||||
|
|
@ -282,7 +310,7 @@ anchor_store_new_key(struct val_anchors* anchors, uint8_t* name, uint16_t type,
|
||||||
/* lookup or create trustanchor */
|
/* lookup or create trustanchor */
|
||||||
ta = anchor_find(anchors, name, namelabs, namelen, dclass);
|
ta = anchor_find(anchors, name, namelabs, namelen, dclass);
|
||||||
if(!ta) {
|
if(!ta) {
|
||||||
ta = anchor_new_ta(anchors, name, namelabs, namelen, dclass);
|
ta = anchor_new_ta(anchors, name, namelabs, namelen, dclass, 1);
|
||||||
if(!ta)
|
if(!ta)
|
||||||
return NULL;
|
return NULL;
|
||||||
lock_basic_lock(&ta->lock);
|
lock_basic_lock(&ta->lock);
|
||||||
|
|
@ -296,7 +324,7 @@ anchor_store_new_key(struct val_anchors* anchors, uint8_t* name, uint16_t type,
|
||||||
lock_basic_unlock(&ta->lock);
|
lock_basic_unlock(&ta->lock);
|
||||||
return ta;
|
return ta;
|
||||||
}
|
}
|
||||||
k = anchor_new_ta_key(anchors, rdata, rdata_len, type);
|
k = anchor_new_ta_key(rdata, rdata_len, type);
|
||||||
if(!k) {
|
if(!k) {
|
||||||
lock_basic_unlock(&ta->lock);
|
lock_basic_unlock(&ta->lock);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
@ -826,55 +854,73 @@ anchor_read_bind_file_wild(struct val_anchors* anchors, ldns_buffer* buffer,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assemble an rrset structure for the type
|
* Assemble an rrset structure for the type
|
||||||
* @param region: allocated in this region.
|
|
||||||
* @param ta: trust anchor.
|
* @param ta: trust anchor.
|
||||||
* @param num: number of items to fetch from list.
|
* @param num: number of items to fetch from list.
|
||||||
* @param type: fetch only items of this type.
|
* @param type: fetch only items of this type.
|
||||||
* @return rrset or NULL on error.
|
* @return rrset or NULL on error.
|
||||||
*/
|
*/
|
||||||
static struct ub_packed_rrset_key*
|
static struct ub_packed_rrset_key*
|
||||||
assemble_it(struct regional* region, struct trust_anchor* ta, size_t num,
|
assemble_it(struct trust_anchor* ta, size_t num, uint16_t type)
|
||||||
uint16_t type)
|
|
||||||
{
|
{
|
||||||
struct ub_packed_rrset_key* pkey = (struct ub_packed_rrset_key*)
|
struct ub_packed_rrset_key* pkey = (struct ub_packed_rrset_key*)
|
||||||
regional_alloc(region, sizeof(*pkey));
|
malloc(sizeof(*pkey));
|
||||||
struct packed_rrset_data* pd;
|
struct packed_rrset_data* pd;
|
||||||
struct ta_key* tk;
|
struct ta_key* tk;
|
||||||
size_t i;
|
size_t i;
|
||||||
if(!pkey)
|
if(!pkey)
|
||||||
return NULL;
|
return NULL;
|
||||||
memset(pkey, 0, sizeof(*pkey));
|
memset(pkey, 0, sizeof(*pkey));
|
||||||
pkey->rk.dname = regional_alloc_init(region, ta->name, ta->namelen);
|
pkey->rk.dname = memdup(ta->name, ta->namelen);
|
||||||
if(!pkey->rk.dname)
|
if(!pkey->rk.dname) {
|
||||||
|
free(pkey);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
pkey->rk.dname_len = ta->namelen;
|
pkey->rk.dname_len = ta->namelen;
|
||||||
pkey->rk.type = htons(type);
|
pkey->rk.type = htons(type);
|
||||||
pkey->rk.rrset_class = htons(ta->dclass);
|
pkey->rk.rrset_class = htons(ta->dclass);
|
||||||
/* The rrset is build in an uncompressed way. This means it
|
/* The rrset is build in an uncompressed way. This means it
|
||||||
* cannot be copied in the normal way. */
|
* cannot be copied in the normal way. */
|
||||||
pd = (struct packed_rrset_data*)regional_alloc(region, sizeof(*pd));
|
pd = (struct packed_rrset_data*)malloc(sizeof(*pd));
|
||||||
if(!pd)
|
if(!pd) {
|
||||||
|
free(pkey->rk.dname);
|
||||||
|
free(pkey);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
memset(pd, 0, sizeof(*pd));
|
memset(pd, 0, sizeof(*pd));
|
||||||
pd->count = num;
|
pd->count = num;
|
||||||
pd->trust = rrset_trust_ultimate;
|
pd->trust = rrset_trust_ultimate;
|
||||||
pd->rr_len = (size_t*)regional_alloc(region, num*sizeof(size_t));
|
pd->rr_len = (size_t*)malloc(num*sizeof(size_t));
|
||||||
if(!pd->rr_len)
|
if(!pd->rr_len) {
|
||||||
|
free(pd);
|
||||||
|
free(pkey->rk.dname);
|
||||||
|
free(pkey);
|
||||||
return NULL;
|
return NULL;
|
||||||
pd->rr_ttl = (uint32_t*)regional_alloc(region, num*sizeof(uint32_t));
|
}
|
||||||
if(!pd->rr_ttl)
|
pd->rr_ttl = (uint32_t*)malloc(num*sizeof(uint32_t));
|
||||||
|
if(!pd->rr_ttl) {
|
||||||
|
free(pd->rr_len);
|
||||||
|
free(pd);
|
||||||
|
free(pkey->rk.dname);
|
||||||
|
free(pkey);
|
||||||
return NULL;
|
return NULL;
|
||||||
pd->rr_data = (uint8_t**)regional_alloc(region, num*sizeof(uint8_t*));
|
}
|
||||||
if(!pd->rr_data)
|
pd->rr_data = (uint8_t**)malloc(num*sizeof(uint8_t*));
|
||||||
|
if(!pd->rr_data) {
|
||||||
|
free(pd->rr_ttl);
|
||||||
|
free(pd->rr_len);
|
||||||
|
free(pd);
|
||||||
|
free(pkey->rk.dname);
|
||||||
|
free(pkey);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
/* fill in rrs */
|
/* fill in rrs */
|
||||||
i=0;
|
i=0;
|
||||||
for(tk = ta->keylist; tk; tk = tk->next) {
|
for(tk = ta->keylist; tk; tk = tk->next) {
|
||||||
if(tk->type != type)
|
if(tk->type != type)
|
||||||
continue;
|
continue;
|
||||||
pd->rr_len[i] = tk->len;
|
pd->rr_len[i] = tk->len;
|
||||||
/* reuse data ptr to allocation in region */
|
/* reuse data ptr to allocation in talist */
|
||||||
pd->rr_data[i] = tk->data;
|
pd->rr_data[i] = tk->data;
|
||||||
pd->rr_ttl[i] = 0;
|
pd->rr_ttl[i] = 0;
|
||||||
i++;
|
i++;
|
||||||
|
|
@ -890,17 +936,16 @@ assemble_it(struct regional* region, struct trust_anchor* ta, size_t num,
|
||||||
* @return: false on error.
|
* @return: false on error.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
anchors_assemble(struct val_anchors* anchors, struct trust_anchor* ta)
|
anchors_assemble(struct trust_anchor* ta)
|
||||||
{
|
{
|
||||||
if(ta->numDS > 0) {
|
if(ta->numDS > 0) {
|
||||||
ta->ds_rrset = assemble_it(anchors->region, ta,
|
ta->ds_rrset = assemble_it(ta, ta->numDS, LDNS_RR_TYPE_DS);
|
||||||
ta->numDS, LDNS_RR_TYPE_DS);
|
|
||||||
if(!ta->ds_rrset)
|
if(!ta->ds_rrset)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if(ta->numDNSKEY > 0) {
|
if(ta->numDNSKEY > 0) {
|
||||||
ta->dnskey_rrset = assemble_it(anchors->region, ta,
|
ta->dnskey_rrset = assemble_it(ta, ta->numDNSKEY,
|
||||||
ta->numDNSKEY, LDNS_RR_TYPE_DNSKEY);
|
LDNS_RR_TYPE_DNSKEY);
|
||||||
if(!ta->dnskey_rrset)
|
if(!ta->dnskey_rrset)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -961,7 +1006,7 @@ anchors_assemble_rrsets(struct val_anchors* anchors)
|
||||||
ta = next; /* skip */
|
ta = next; /* skip */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(!anchors_assemble(anchors, ta)) {
|
if(!anchors_assemble(ta)) {
|
||||||
log_err("out of memory");
|
log_err("out of memory");
|
||||||
lock_basic_unlock(&ta->lock);
|
lock_basic_unlock(&ta->lock);
|
||||||
lock_basic_unlock(&anchors->lock);
|
lock_basic_unlock(&anchors->lock);
|
||||||
|
|
@ -1146,5 +1191,72 @@ anchors_lookup(struct val_anchors* anchors,
|
||||||
size_t
|
size_t
|
||||||
anchors_get_mem(struct val_anchors* anchors)
|
anchors_get_mem(struct val_anchors* anchors)
|
||||||
{
|
{
|
||||||
return sizeof(*anchors) + regional_get_mem(anchors->region);
|
struct trust_anchor *ta;
|
||||||
|
size_t s = sizeof(*anchors);
|
||||||
|
RBTREE_FOR(ta, struct trust_anchor*, anchors->tree) {
|
||||||
|
s += sizeof(*ta) + ta->namelen;
|
||||||
|
/* keys and so on */
|
||||||
|
}
|
||||||
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
anchors_add_insecure(struct val_anchors* anchors, uint16_t c, uint8_t* nm)
|
||||||
|
{
|
||||||
|
struct trust_anchor key;
|
||||||
|
key.node.key = &key;
|
||||||
|
key.name = nm;
|
||||||
|
key.namelabs = dname_count_size_labels(nm, &key.namelen);
|
||||||
|
key.dclass = c;
|
||||||
|
lock_basic_lock(&anchors->lock);
|
||||||
|
if(rbtree_search(anchors->tree, &key)) {
|
||||||
|
lock_basic_unlock(&anchors->lock);
|
||||||
|
/* nothing to do, already an anchor or insecure point */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if(!anchor_new_ta(anchors, nm, key.namelabs, key.namelen, c, 0)) {
|
||||||
|
log_err("out of memory");
|
||||||
|
lock_basic_unlock(&anchors->lock);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* no other contents in new ta, because it is insecure point */
|
||||||
|
anchors_init_parents_locked(anchors);
|
||||||
|
lock_basic_unlock(&anchors->lock);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
anchors_delete_insecure(struct val_anchors* anchors, uint16_t c,
|
||||||
|
uint8_t* nm)
|
||||||
|
{
|
||||||
|
struct trust_anchor key;
|
||||||
|
struct trust_anchor* ta;
|
||||||
|
key.node.key = &key;
|
||||||
|
key.name = nm;
|
||||||
|
key.namelabs = dname_count_size_labels(nm, &key.namelen);
|
||||||
|
key.dclass = c;
|
||||||
|
lock_basic_lock(&anchors->lock);
|
||||||
|
if(!(ta=(struct trust_anchor*)rbtree_search(anchors->tree, &key))) {
|
||||||
|
lock_basic_unlock(&anchors->lock);
|
||||||
|
/* nothing there */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/* lock it to drive away other threads that use it */
|
||||||
|
lock_basic_lock(&ta->lock);
|
||||||
|
/* see if its really an insecure point */
|
||||||
|
if(ta->keylist || ta->autr || ta->numDS || ta->numDNSKEY) {
|
||||||
|
lock_basic_unlock(&ta->lock);
|
||||||
|
/* its not an insecure point, do not remove it */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
lock_basic_unlock(&ta->lock);
|
||||||
|
|
||||||
|
/* remove from tree */
|
||||||
|
rbtree_delete(anchors->tree, &ta->node);
|
||||||
|
anchors_init_parents_locked(anchors);
|
||||||
|
lock_basic_unlock(&anchors->lock);
|
||||||
|
|
||||||
|
/* actual free of data */
|
||||||
|
anchors_delfunc(&ta->node, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,6 @@
|
||||||
#define VALIDATOR_VAL_ANCHOR_H
|
#define VALIDATOR_VAL_ANCHOR_H
|
||||||
#include "util/rbtree.h"
|
#include "util/rbtree.h"
|
||||||
#include "util/locks.h"
|
#include "util/locks.h"
|
||||||
struct regional;
|
|
||||||
struct trust_anchor;
|
struct trust_anchor;
|
||||||
struct config_file;
|
struct config_file;
|
||||||
struct ub_packed_rrset_key;
|
struct ub_packed_rrset_key;
|
||||||
|
|
@ -60,11 +59,6 @@ struct autr_global_data;
|
||||||
struct val_anchors {
|
struct val_anchors {
|
||||||
/** lock on trees */
|
/** lock on trees */
|
||||||
lock_basic_t lock;
|
lock_basic_t lock;
|
||||||
/**
|
|
||||||
* region where trust anchors are allocated.
|
|
||||||
* Autotrust anchors are malloced so they can be updated.
|
|
||||||
*/
|
|
||||||
struct regional* region;
|
|
||||||
/**
|
/**
|
||||||
* Anchors are store in this tree. Sort order is chosen, so that
|
* Anchors are store in this tree. Sort order is chosen, so that
|
||||||
* dnames are in nsec-like order. A lookup on class, name will return
|
* dnames are in nsec-like order. A lookup on class, name will return
|
||||||
|
|
@ -111,7 +105,6 @@ struct trust_anchor {
|
||||||
struct trust_anchor* parent;
|
struct trust_anchor* parent;
|
||||||
/**
|
/**
|
||||||
* List of DS or DNSKEY rrs that form the trust anchor.
|
* List of DS or DNSKEY rrs that form the trust anchor.
|
||||||
* It is allocated in the region.
|
|
||||||
*/
|
*/
|
||||||
struct ta_key* keylist;
|
struct ta_key* keylist;
|
||||||
/** Autotrust anchor point data, or NULL */
|
/** Autotrust anchor point data, or NULL */
|
||||||
|
|
@ -203,4 +196,23 @@ size_t anchors_get_mem(struct val_anchors* anchors);
|
||||||
/** compare two trust anchors */
|
/** compare two trust anchors */
|
||||||
int anchor_cmp(const void* k1, const void* k2);
|
int anchor_cmp(const void* k1, const void* k2);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add insecure point trust anchor. For external use (locks and init_parents)
|
||||||
|
* @param anchors: anchor storage.
|
||||||
|
* @param c: class.
|
||||||
|
* @param nm: name of insecure trust point.
|
||||||
|
* @return false on alloc failure.
|
||||||
|
*/
|
||||||
|
int anchors_add_insecure(struct val_anchors* anchors, uint16_t c, uint8_t* nm);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete insecure point trust anchor. Does not remove if no such point.
|
||||||
|
* For external use (locks and init_parents)
|
||||||
|
* @param anchors: anchor storage.
|
||||||
|
* @param c: class.
|
||||||
|
* @param nm: name of insecure trust point.
|
||||||
|
*/
|
||||||
|
void anchors_delete_insecure(struct val_anchors* anchors, uint16_t c,
|
||||||
|
uint8_t* nm);
|
||||||
|
|
||||||
#endif /* VALIDATOR_VAL_ANCHOR_H */
|
#endif /* VALIDATOR_VAL_ANCHOR_H */
|
||||||
|
|
|
||||||
|
|
@ -2923,7 +2923,6 @@ val_get_mem(struct module_env* env, int id)
|
||||||
return 0;
|
return 0;
|
||||||
return sizeof(*ve) + key_cache_get_mem(ve->kcache) +
|
return sizeof(*ve) + key_cache_get_mem(ve->kcache) +
|
||||||
val_neg_get_mem(ve->neg_cache) +
|
val_neg_get_mem(ve->neg_cache) +
|
||||||
anchors_get_mem(env->anchors) +
|
|
||||||
sizeof(size_t)*2*ve->nsec3_keyiter_count;
|
sizeof(size_t)*2*ve->nsec3_keyiter_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue