Lines Matching defs:tcl

53 	struct tcl_list* tcl = (struct tcl_list*)calloc(1,
55 if(!tcl)
57 tcl->region = regional_create();
58 if(!tcl->region) {
59 tcl_list_delete(tcl);
62 return tcl;
76 tcl_list_delete(struct tcl_list* tcl)
78 if(!tcl)
80 traverse_postorder(&tcl->tree, tcl_list_free_node, NULL);
81 regional_destroy(tcl->region);
82 free(tcl);
87 tcl_list_insert(struct tcl_list* tcl, struct sockaddr_storage* addr,
91 struct tcl_addr* node = regional_alloc_zero(tcl->region,
97 if(!addr_tree_insert(&tcl->tree, &node->node, addr, addrlen, net)) {
99 verbose(VERB_QUERY, "duplicate tcl address ignored.");
106 tcl_list_str_cfg(struct tcl_list* tcl, const char* str, const char* s2,
122 if(!tcl_list_insert(tcl, &addr, addrlen, net, limit,
132 read_tcl_list(struct tcl_list* tcl, struct config_file* cfg)
137 if(!tcl_list_str_cfg(tcl, p->str, p->str2, 1))
144 tcl_list_apply_cfg(struct tcl_list* tcl, struct config_file* cfg)
146 regional_free_all(tcl->region);
147 addr_tree_init(&tcl->tree);
148 if(!read_tcl_list(tcl, cfg))
150 addr_tree_init_parents(&tcl->tree);
155 tcl_new_connection(struct tcl_addr* tcl)
157 if(tcl) {
159 lock_quick_lock(&tcl->lock);
160 if(tcl->count >= tcl->limit)
163 tcl->count++;
164 lock_quick_unlock(&tcl->lock);
171 tcl_close_connection(struct tcl_addr* tcl)
173 if(tcl) {
174 lock_quick_lock(&tcl->lock);
175 log_assert(tcl->count > 0);
176 tcl->count--;
177 lock_quick_unlock(&tcl->lock);
182 tcl_addr_lookup(struct tcl_list* tcl, struct sockaddr_storage* addr,
185 return (struct tcl_addr*)addr_tree_lookup(&tcl->tree,
190 tcl_list_get_mem(struct tcl_list* tcl)
192 if(!tcl) return 0;
193 return sizeof(*tcl) + regional_get_mem(tcl->region);