SYNTAX
#include "dnsresolv.h"
int dns_resolvconfip(char servers[512],uint32 scope[32]);
int dns_transmit_start(struct dns_transmit *q,const char servers[512],
int flagrecursive,const char *q,const char qtype[2],
const char localip[16]);
int dns_transmit_start6(struct dns_transmit *q,const char servers[512],
int flagrecursive,const char *q,const char qtype[2],
const char localip[16],const uint32 scopes[32]);
int dns_sortip4(char *servers,unsigned int n);
int dns_sortip6(char *servers,unsigned int n);
DESCRIPTION
dns_resolvconfip reads the name servers defined in /etc/resolv.conf and
uses ip6_ifscan to fetch their IPv4/IPv6 addresses together with the
scope for the LLU address. Up to 32 name servers can be specified.
Apart from the system-wide /etc/resolv.conf the IP addresses of name
servers can preferrably be provided by means of the environment
variable $DNSCACHEIP for each user application. The variable
$DNSCACHEIP may include up to 32 name server IP addresses separated by
white spaces:
DNSCACHEIP="10.0.1.53 fe80::1%lo0 ::1"
dns_transmit_start and dns_transmit_start6 use the list of name server
IP's for a recursive or none-recursive query q of type qtype starting
from IP address localip for which the struct dns_transmit provides the
required book keeping information. dns_transmit_start6 additionally
is able to evaluate the given scope_id as information for the local
interface in order to bind to the remote IPv6 LLU addresses. Usually
scope_id defaults to 0.
dns_sortip4 and dns_sortip6 randomize the list of name server IPs upon
call and as result the first address is used to facilitate the name
lookup. FQDN.
RETURN CODES
Different from the original djb implemtation, the following return code
scheme is used:
rc > 0
A 'positive' answer is given, thus results returned.
rc = 0
A 'neutral' answer was provided, thus typically the operation
succeeden, but without replies.
rc < 0
Memory error occured.
A 'safe' usage of return codes thus checks not only the presence
of a return code, but rather additionally it's sign. Negative return
codes point to errors.
SEE ALSO
http://cr.yp.to/djbdns/qualify.html, dns(3), ip4(3), ip6(3),
socket_if(3)
qlibs:(dnsstub)
Man(1) output converted with
man2html