libfiredns(3)

NAME
libfiredns - library for asynchronous DNS requests

SYNOPSIS
#include <firedns.h>
-lfiredns

DESCRIPTION
libfiredns is a library for handling asynchronous DNS requests. It provides a very simple interface for sending requests and parsing reponses, as well as low-timeout blocking functions. It can also be compiled to override the BIND/LIBC functions with its alternative implementations. libfiredns functions have much lower timeouts than the stock functions and tend to be faster because they send requests to all configured system nameservers at the same time.

Any function ending in "_r" is reentrant; it is safe to be used from threaded programs, and it returns a dynamically allocated buffer which must be free()'d later.

Any function ending in "_s" takes a buffer as a parameter that it will write to.

Non-network functions:
firedns_aton4(3)
firedns_aton6(3)
firedns_ntoa4(3)
firedns_ntoa6(3)

Non-blocking functions:
firedns_getip4(3)
firedns_getip4list(3)
firedns_getip6(3)
firedns_getip6list(3)
firedns_gettxt(3)
firedns_gettxtlist(3)
firedns_getmx(3)
firedns_getmxlist(3)
firedns_getname4(3)
firedns_getname6(3)
firedns_getcname(3)
firedns_getresult(3)

Blocking functions:
firedns_resolveip4(3)
firedns_resolveip4list(3)
firedns_resolveip6(3)
firedns_resolveip6list(3)
firedns_resolvetxt(3)
firedns_resolvetxtlist(3)
firedns_resolvemx(3)
firedns_resolvemxlist(3)
firedns_resolvemxalist(3)
firedns_resolvename4(3)
firedns_resolvename6(3)
firedns_resolvecname(3)

Miscellaneous functions:
firedns_free_mxalist(3)

FILES
/usr/local/include/firedns.h
/usr/local/lib/libfiredns.so
/usr/local/lib/libfiredns.a
/usr/local/etc/firedns.conf
/etc/resolv.conf

BUGS
This used to say: FireDNS is very network unfriendly. It sends queries to all nameservers in /usr/local/etc/firedns.conf or (fallback) /etc/resolv.conf at the same time. This loads the nameservers and the network much more than existing implementations but tends to get responses much faster. However, it seems that the network usage is well worth the 10 - 15% speed increase (in ideal situations) that this program can provide. If a primary nameserver is down, this speed increase is > 10000%.

AUTHOR
Ian Gulliver <ian@penguinhosting.net>