chiark / gitweb /
Implement SOA, RP, HINFO (but no mailbox quoting). Implement _finish.
[adns.git] / src / setup.c
index 3852603a545db86eea168e01598f709e29e5450e..72c72d4f031eb1e52e0b00b6b8feb4d9f0105f69 100644 (file)
@@ -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);
 }