Lines Matching refs:zones

86 void local_zones_print(struct local_zones* zones)  in local_zones_print()  argument
89 lock_rw_rdlock(&zones->lock); in local_zones_print()
90 log_info("number of auth zones %u", (unsigned)zones->ztree.count); in local_zones_print()
91 RBTREE_FOR(z, struct local_zone*, &zones->ztree) { in local_zones_print()
94 lock_rw_unlock(&zones->lock); in local_zones_print()
100 struct local_zones* zones = (struct local_zones*)calloc(1, in local_zones_create() local
101 sizeof(*zones)); in local_zones_create()
102 if(!zones) in local_zones_create()
104 rbtree_init(&zones->ztree, &local_zone_cmp); in local_zones_create()
105 lock_rw_init(&zones->lock); in local_zones_create()
106 lock_protect(&zones->lock, &zones->ztree, sizeof(zones->ztree)); in local_zones_create()
108 return zones; in local_zones_create()
120 local_zones_delete(struct local_zones* zones) in local_zones_delete() argument
122 if(!zones) in local_zones_delete()
124 lock_rw_destroy(&zones->lock); in local_zones_delete()
126 traverse_postorder(&zones->ztree, lzdel, NULL); in local_zones_delete()
127 free(zones); in local_zones_delete()
211 lz_enter_zone_dname(struct local_zones* zones, uint8_t* nm, size_t len, in lz_enter_zone_dname() argument
222 lock_rw_wrlock(&zones->lock); in lz_enter_zone_dname()
224 if(!rbtree_insert(&zones->ztree, &z->node)) { in lz_enter_zone_dname()
234 z = local_zones_find(zones, nm, len, labs, c); in lz_enter_zone_dname()
236 lock_rw_unlock(&zones->lock); in lz_enter_zone_dname()
240 lock_rw_unlock(&zones->lock); in lz_enter_zone_dname()
246 lz_enter_zone(struct local_zones* zones, const char* name, const char* type, in lz_enter_zone() argument
263 if(!(z=lz_enter_zone_dname(zones, nm, len, labs, t, dclass))) { in lz_enter_zone()
639 lz_enter_rr_str(struct local_zones* zones, const char* rr) in lz_enter_rr_str() argument
652 lock_rw_rdlock(&zones->lock); in lz_enter_rr_str()
653 z = local_zones_lookup(zones, rr_name, len, labs, rr_class, rr_type); in lz_enter_rr_str()
655 lock_rw_unlock(&zones->lock); in lz_enter_rr_str()
659 lock_rw_unlock(&zones->lock); in lz_enter_rr_str()
668 lz_enter_zone_tag(struct local_zones* zones, char* zname, uint8_t* list, in lz_enter_zone_tag() argument
682 lock_rw_rdlock(&zones->lock); in lz_enter_zone_tag()
683 z = local_zones_find(zones, dname, dname_len, dname_labs, rr_class); in lz_enter_zone_tag()
685 lock_rw_unlock(&zones->lock); in lz_enter_zone_tag()
690 lock_rw_unlock(&zones->lock); in lz_enter_zone_tag()
702 lz_enter_override(struct local_zones* zones, char* zname, char* netblock, in lz_enter_override() argument
738 lock_rw_rdlock(&zones->lock); in lz_enter_override()
739 z = local_zones_find(zones, dname, dname_len, dname_labs, rr_class); in lz_enter_override()
741 lock_rw_unlock(&zones->lock); in lz_enter_override()
746 lock_rw_unlock(&zones->lock); in lz_enter_override()
785 lz_enter_zones(struct local_zones* zones, struct config_file* cfg) in lz_enter_zones() argument
796 lz_enter_zone(zones, p->str, p->str2, in lz_enter_zones()
806 lz_exists(struct local_zones* zones, const char* name) in lz_exists() argument
815 lock_rw_rdlock(&zones->lock); in lz_exists()
816 if(rbtree_search(&zones->ztree, &z.node)) { in lz_exists()
817 lock_rw_unlock(&zones->lock); in lz_exists()
821 lock_rw_unlock(&zones->lock); in lz_exists()
847 add_empty_default(struct local_zones* zones, struct config_file* cfg, in add_empty_default() argument
852 if(lz_exists(zones, name) || lz_nodefault(cfg, name)) in add_empty_default()
854 if(!(z=lz_enter_zone(zones, name, "static", LDNS_RR_CLASS_IN))) in add_empty_default()
872 int local_zone_enter_defaults(struct local_zones* zones, struct config_file* cfg) in local_zone_enter_defaults() argument
886 if(!lz_exists(zones, "localhost.") && in local_zone_enter_defaults()
888 if(!(z=lz_enter_zone(zones, "localhost.", "redirect", in local_zone_enter_defaults()
906 if(!lz_exists(zones, "127.in-addr.arpa.") && in local_zone_enter_defaults()
908 if(!(z=lz_enter_zone(zones, "127.in-addr.arpa.", "static", in local_zone_enter_defaults()
924 …if(!lz_exists(zones, "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.") … in local_zone_enter_defaults()
926 …if(!(z=lz_enter_zone(zones, "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.a… in local_zone_enter_defaults()
942 if(!add_empty_default(zones, cfg, "home.arpa.")) { in local_zone_enter_defaults()
947 if(!add_empty_default(zones, cfg, "onion.")) { in local_zone_enter_defaults()
952 if(!add_empty_default(zones, cfg, "test.")) { in local_zone_enter_defaults()
957 if(!add_empty_default(zones, cfg, "invalid.")) { in local_zone_enter_defaults()
964 if(!add_empty_default(zones, cfg, *zstr)) { in local_zone_enter_defaults()
975 lz_enter_overrides(struct local_zones* zones, struct config_file* cfg) in lz_enter_overrides() argument
979 if(!lz_enter_override(zones, p->str, p->str2, p->str3, in lz_enter_overrides()
988 init_parents(struct local_zones* zones) in init_parents() argument
992 lock_rw_wrlock(&zones->lock); in init_parents()
993 RBTREE_FOR(node, struct local_zone*, &zones->ztree) { in init_parents()
1020 lock_rw_unlock(&zones->lock); in init_parents()
1025 lz_setup_implicit(struct local_zones* zones, struct config_file* cfg) in lz_setup_implicit() argument
1039 init_parents(zones); /* to enable local_zones_lookup() */ in lz_setup_implicit()
1050 lock_rw_rdlock(&zones->lock); in lz_setup_implicit()
1051 if(!local_zones_lookup(zones, rr_name, len, labs, rr_class, in lz_setup_implicit()
1058 struct local_zone* z = local_zones_lookup(zones, in lz_setup_implicit()
1065 lock_rw_unlock(&zones->lock); in lz_setup_implicit()
1075 lz_enter_zone_dname(zones, name, in lz_setup_implicit()
1098 lock_rw_unlock(&zones->lock); in lz_setup_implicit()
1109 lock_rw_unlock(&zones->lock); in lz_setup_implicit()
1131 lz_enter_zone_dname(zones, n2, nmlen, match, in lz_setup_implicit()
1139 return lz_setup_implicit(zones, cfg); in lz_setup_implicit()
1146 lz_enter_zone_tags(struct local_zones* zones, struct config_file* cfg) in lz_enter_zone_tags() argument
1151 if(!lz_enter_zone_tag(zones, p->str, p->str2, p->str2len, in lz_enter_zone_tags()
1162 lz_enter_data(struct local_zones* zones, struct config_file* cfg) in lz_enter_data() argument
1166 if(!lz_enter_rr_str(zones, p->str)) in lz_enter_data()
1185 local_zones_apply_cfg(struct local_zones* zones, struct config_file* cfg) in local_zones_apply_cfg() argument
1188 if(!lz_enter_zones(zones, cfg)) { in local_zones_apply_cfg()
1192 if(!local_zone_enter_defaults(zones, cfg)) { in local_zones_apply_cfg()
1196 if(!lz_enter_overrides(zones, cfg)) { in local_zones_apply_cfg()
1200 if(!lz_setup_implicit(zones, cfg)) { in local_zones_apply_cfg()
1205 init_parents(zones); in local_zones_apply_cfg()
1207 if(!lz_enter_zone_tags(zones, cfg)) { in local_zones_apply_cfg()
1211 if(!lz_enter_data(zones, cfg)) { in local_zones_apply_cfg()
1220 local_zones_lookup(struct local_zones* zones, in local_zones_lookup() argument
1223 return local_zones_tags_lookup(zones, name, len, labs, in local_zones_lookup()
1228 local_zones_tags_lookup(struct local_zones* zones, in local_zones_tags_lookup() argument
1246 rbtree_find_less_equal(&zones->ztree, &key, &res); in local_zones_tags_lookup()
1266 local_zones_find(struct local_zones* zones, in local_zones_find() argument
1276 return (struct local_zone*)rbtree_search(&zones->ztree, &key); in local_zones_find()
1280 local_zones_find_le(struct local_zones* zones, in local_zones_find_le() argument
1291 *exact = rbtree_find_less_equal(&zones->ztree, &key, &node); in local_zones_find_le()
1832 local_zones_answer(struct local_zones* zones, struct module_env* env, in local_zones_answer() argument
1884 lock_rw_rdlock(&zones->lock); in local_zones_answer()
1885 if(!(z = local_zones_tags_lookup(zones, qinfo->qname, in local_zones_answer()
1888 lock_rw_unlock(&zones->lock); in local_zones_answer()
1895 lock_rw_unlock(&zones->lock); in local_zones_answer()
2027 struct local_zone* local_zones_add_zone(struct local_zones* zones, in local_zones_add_zone() argument
2040 z->parent = local_zones_find(zones, name, len, labs, dclass); in local_zones_add_zone()
2043 if(!rbtree_insert(&zones->ztree, &z->node)) { in local_zones_add_zone()
2058 void local_zones_del_zone(struct local_zones* zones, struct local_zone* z) in local_zones_del_zone() argument
2065 (void)rbtree_delete(&zones->ztree, z); in local_zones_del_zone()
2073 local_zones_add_RR(struct local_zones* zones, const char* rr) in local_zones_add_RR() argument
2087 lock_rw_wrlock(&zones->lock); in local_zones_add_RR()
2088 z = local_zones_lookup(zones, rr_name, len, labs, rr_class, rr_type); in local_zones_add_RR()
2090 z = local_zones_add_zone(zones, rr_name, len, labs, rr_class, in local_zones_add_RR()
2093 lock_rw_unlock(&zones->lock); in local_zones_add_RR()
2100 lock_rw_unlock(&zones->lock); in local_zones_add_RR()
2157 void local_zones_del_data(struct local_zones* zones, in local_zones_del_data() argument
2165 lock_rw_rdlock(&zones->lock); in local_zones_del_data()
2166 z = local_zones_lookup(zones, name, len, labs, dclass, LDNS_RR_TYPE_DS); in local_zones_del_data()
2176 lock_rw_unlock(&zones->lock); in local_zones_del_data()
2179 lock_rw_rdlock(&zones->lock); in local_zones_del_data()
2180 z = local_zones_lookup(zones, name, len, labs, dclass, 0); in local_zones_del_data()
2183 lock_rw_unlock(&zones->lock); in local_zones_del_data()
2187 lock_rw_unlock(&zones->lock); in local_zones_del_data()