static void ngx_resolver_cleanup(void *data) { ngx_resolver_t *r = data; ngx_uint_t i; ngx_udp_connection_t *uc; if (r) { ngx_log_debug0(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0, "cleanup resolver"); ngx_resolver_cleanup_tree(r, &r->name_rbtree); ngx_resolver_cleanup_tree(r, &r->addr_rbtree); if (r->event) { ngx_free(r->event); } uc = r->udp_connections.elts; for (i = 0; i < r->udp_connections.nelts; i++) { if (uc[i].connection) { ngx_close_connection(uc[i].connection); } } ngx_free(r); } }
static void ngx_resolver_cleanup(void *data) { ngx_resolver_t *r = data; if (r) { ngx_log_debug0(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0, "cleanup resolver"); ngx_resolver_cleanup_tree(r, &r->name_rbtree); ngx_resolver_cleanup_tree(r, &r->addr_rbtree); if (r->event) { ngx_free(r->event); } if (r->udp_connection) { if (r->udp_connection->connection) { ngx_close_connection(r->udp_connection->connection); } ngx_free(r->udp_connection); } ngx_free(r); } }