Lines Matching refs:whitelist

2  * edns-subnet/subnet-whitelist.c - Hosts we actively try to send subnet option
47 #include "edns-subnet/subnet-whitelist.h"
59 struct ecs_whitelist* whitelist =
62 if(!whitelist)
64 whitelist->region = regional_create();
65 if(!whitelist->region) {
66 ecs_whitelist_delete(whitelist);
69 return whitelist;
73 ecs_whitelist_delete(struct ecs_whitelist* whitelist)
75 if(!whitelist)
77 regional_destroy(whitelist->region);
78 free(whitelist);
81 /** insert new address into whitelist structure */
83 upstream_insert(struct ecs_whitelist* whitelist,
87 whitelist->region, sizeof(*node));
90 if(!addr_tree_insert(&whitelist->upstream, node, addr, addrlen, net)) {
99 upstream_str_cfg(struct ecs_whitelist* whitelist, const char* str)
109 if(!upstream_insert(whitelist, &addr, addrlen, net)) {
118 read_upstream(struct ecs_whitelist* whitelist, struct config_file* cfg)
123 if(!upstream_str_cfg(whitelist, p->str))
131 read_names(struct ecs_whitelist* whitelist, struct config_file* cfg)
148 nmr = (uint8_t*)regional_alloc_init(whitelist->region, nm,
155 n = (struct name_tree_node*)regional_alloc(whitelist->region,
161 if(!name_tree_insert(&whitelist->dname, n, nmr, nm_len, nm_labs,
171 ecs_whitelist_apply_cfg(struct ecs_whitelist* whitelist,
174 regional_free_all(whitelist->region);
175 addr_tree_init(&whitelist->upstream);
176 name_tree_init(&whitelist->dname);
177 if(!read_upstream(whitelist, cfg))
179 if(!read_names(whitelist, cfg))
181 addr_tree_init_parents(&whitelist->upstream);
182 name_tree_init_parents(&whitelist->dname);
187 ecs_is_whitelisted(struct ecs_whitelist* whitelist,
192 if(addr_tree_lookup(&whitelist->upstream, addr, addrlen))
194 /* Not in upstream whitelist, check dname whitelist. */
196 return name_tree_lookup(&whitelist->dname, qname, qname_len, labs,
201 ecs_whitelist_get_mem(struct ecs_whitelist* whitelist)
203 if(!whitelist) return 0;
204 return sizeof(*whitelist) + regional_get_mem(whitelist->region);