MINOR: resolvers: resolvers_destroy() deinit and free a resolver

Split the resolvers_deinit() function into resolvers_destroy() and
resolvers_deinit() in order to be able to free a unique resolvers
section.
This commit is contained in:
William Lallemand 2022-07-18 14:09:58 +02:00
parent 5b3cd9561b
commit e606c84fee

View File

@ -2403,16 +2403,14 @@ static struct task *process_resolvers(struct task *t, void *context, unsigned in
return t; return t;
} }
/* Release memory allocated by DNS */
static void resolvers_deinit(void) /* destroy a resolvers */
static void resolvers_destroy(struct resolvers *resolvers)
{ {
struct resolvers *resolvers, *resolversback;
struct dns_nameserver *ns, *nsback; struct dns_nameserver *ns, *nsback;
struct resolv_resolution *res, *resback; struct resolv_resolution *res, *resback;
struct resolv_requester *req, *reqback; struct resolv_requester *req, *reqback;
struct resolv_srvrq *srvrq, *srvrqback;
list_for_each_entry_safe(resolvers, resolversback, &sec_resolvers, list) {
list_for_each_entry_safe(ns, nsback, &resolvers->nameservers, list) { list_for_each_entry_safe(ns, nsback, &resolvers->nameservers, list) {
free(ns->id); free(ns->id);
free((char *)ns->conf.file); free((char *)ns->conf.file);
@ -2463,6 +2461,16 @@ static void resolvers_deinit(void)
free(resolvers); free(resolvers);
} }
/* Release memory allocated by DNS */
static void resolvers_deinit(void)
{
struct resolvers *resolvers, *resolversback;
struct resolv_srvrq *srvrq, *srvrqback;
list_for_each_entry_safe(resolvers, resolversback, &sec_resolvers, list) {
resolvers_destroy(resolvers);
}
list_for_each_entry_safe(srvrq, srvrqback, &resolv_srvrq_list, list) { list_for_each_entry_safe(srvrq, srvrqback, &resolv_srvrq_list, list) {
free(srvrq->name); free(srvrq->name);
free(srvrq->hostname_dn); free(srvrq->hostname_dn);