dns.c is a recursive, re-entrant, non-blocking DNS
resolver in a single .c file. It features a
record-agnostic API, restartable record iterators,
and smart queries which recursively follow
out-of-bailiwick NS, MX, and SRV host references.
It works just as well as a stub resolver, too. It also includes spf.c, a non-blocking SPF resolver with no threading, no forking, and no run-time dependencies.