X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/cd1bde2f17b3a8459ce356c7567b6b9fb2ca9f2a..6109379210b821fe451fc7690798f638ea12dc70:/src/setup.c diff --git a/src/setup.c b/src/setup.c index 3852603..72c72d4 100644 --- a/src/setup.c +++ b/src/setup.c @@ -248,6 +248,16 @@ int adns_init(adns_state *ads_r, adns_initflags flags, FILE *diagfile) { return r; } -int adns_finish(adns_state ads) { - abort(); /* fixme */ +void adns_finish(adns_state ads) { + for (;;) { + if (ads->timew.head) adns_cancel(ads->timew.head); + else if (ads->childw.head) adns_cancel(ads->childw.head); + else if (ads->output.head) adns_cancel(ads->output.head); + else break; + } + close(ads->udpsocket); + if (ads->tcpsocket >= 0) close(ads->tcpsocket); + adns__vbuf_free(&ads->tcpsend); + adns__vbuf_free(&ads->tcprecv); + free(ads); }