Lines Matching refs:channel
35 void ares_destroy(ares_channel_t *channel)
40 if (channel == NULL) {
45 ares__channel_lock(channel);
48 node = ares__llist_node_first(channel->all_queries);
60 ares_queue_notify_empty(channel);
66 assert(ares__llist_len(channel->all_queries) == 0);
67 assert(ares__htable_szvp_num_keys(channel->queries_by_qid) == 0);
68 assert(ares__slist_len(channel->queries_by_timeout) == 0);
71 ares__destroy_servers_state(channel);
74 assert(ares__htable_asvp_num_keys(channel->connnode_by_socket) == 0);
78 ares__channel_unlock(channel);
81 if (channel->optmask & ARES_OPT_EVENT_THREAD) {
82 ares_event_thread_destroy(channel);
85 if (channel->domains) {
86 for (i = 0; i < channel->ndomains; i++) {
87 ares_free(channel->domains[i]);
89 ares_free(channel->domains);
92 ares__llist_destroy(channel->all_queries);
93 ares__slist_destroy(channel->queries_by_timeout);
94 ares__htable_szvp_destroy(channel->queries_by_qid);
95 ares__htable_asvp_destroy(channel->connnode_by_socket);
97 ares_free(channel->sortlist);
98 ares_free(channel->lookups);
99 ares_free(channel->resolvconf_path);
100 ares_free(channel->hosts_path);
101 ares__destroy_rand_state(channel->rand_state);
103 ares__hosts_file_destroy(channel->hf);
105 ares__qcache_destroy(channel->qcache);
107 ares__channel_threading_destroy(channel);
109 ares_free(channel);
125 void ares__destroy_servers_state(ares_channel_t *channel)
129 while ((node = ares__slist_node_first(channel->servers)) != NULL) {
134 ares__slist_destroy(channel->servers);
135 channel->servers = NULL;