dns_qp_compact(qp, DNS_QPGC_MAYBE);
dns_qpmulti_commit(fwdtable->table, &qp);
- if (result == ISC_R_SUCCESS) {
- dns_forwarders_detach(&forwarders);
- } else {
- goto cleanup;
- }
-
- return (ISC_R_SUCCESS);
+ dns_forwarders_detach(&forwarders);
-cleanup:
- while (!ISC_LIST_EMPTY(forwarders->fwdrs)) {
- fwd = ISC_LIST_HEAD(forwarders->fwdrs);
- ISC_LIST_UNLINK(forwarders->fwdrs, fwd, link);
- if (fwd->tlsname != NULL) {
- dns_name_free(fwd->tlsname, fwdtable->mctx);
- isc_mem_put(fwdtable->mctx, fwd->tlsname,
- sizeof(*fwd->tlsname));
- }
- isc_mem_put(fwdtable->mctx, fwd, sizeof(*fwd));
- }
- isc_mem_put(fwdtable->mctx, forwarders, sizeof(*forwarders));
return (result);
}
dns_qp_compact(qp, DNS_QPGC_MAYBE);
dns_qpmulti_commit(fwdtable->table, &qp);
- if (result == ISC_R_SUCCESS) {
- dns_forwarders_detach(&forwarders);
- } else {
- goto cleanup;
- }
-
- return (ISC_R_SUCCESS);
+ dns_forwarders_detach(&forwarders);
-cleanup:
- while (!ISC_LIST_EMPTY(forwarders->fwdrs)) {
- fwd = ISC_LIST_HEAD(forwarders->fwdrs);
- ISC_LIST_UNLINK(forwarders->fwdrs, fwd, link);
- isc_mem_put(fwdtable->mctx, fwd, sizeof(*fwd));
- }
- isc_mem_put(fwdtable->mctx, forwarders, sizeof(*forwarders));
return (result);
}