*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> getrrsetbyname (3)              
Title
Content
Arch
Section
 

GETRRSETBYNAME(3)

Contents


NAME    [Toc]    [Back]

     getrrsetbyname - retrieve DNS records

SYNOPSIS    [Toc]    [Back]

     #include <netdb.h>

     int
     getrrsetbyname(const char *hostname, unsigned int rdclass,
             unsigned int  rdtype,  unsigned  int  flags,  struct
rrsetinfo **res);

     void
     freerrset(struct rrsetinfo *rrset);

DESCRIPTION    [Toc]    [Back]

     getrrsetbyname()  gets  a set of resource records associated
with a
     hostname, rdclass and rdtype.  hostname is a  pointer  a  to
null-terminated
     string.  The flags field is currently unused and must be zero.

     After a successful  call  to  getrrsetbyname(),  *res  is  a
pointer to an
     rrsetinfo  structure,  containing  a  list  of  one  or more
rdatainfo structures
 containing resource records  and  potentially  another
list of
     rdatainfo structures containing SIG resource records associated with
     those records.  The members rri_rdclass and  rri_rdtype  are
copied from
     the  parameters.  rri_ttl and rri_name are properties of the
obtained
     rrset.  The resource records  contained  in  rri_rdatas  and
rri_sigs are in
     uncompressed  DNS  wire  format.  Properties of the rdataset
are represented
     in the rri_flags bitfield.  If the  RRSET_VALIDATED  bit  is
set, the data
     has been DNSSEC validated and the signatures verified.

     The following structures are used:

     struct  rdatainfo {
             unsigned int            rdi_length;     /* length of
data */
             unsigned char            *rdi_data;       /*  record
data */
     };

     struct  rrsetinfo {
             unsigned     int               rri_flags;         /*
RRSET_VALIDATED ... */
             unsigned  int             rri_rdclass;     /*  class
number */
             unsigned  int             rri_rdtype;     /* RR type
number */
             unsigned int            rri_ttl;        /*  time  to
live */
             unsigned  int             rri_nrdatas;    /* size of
rdatas array */
             unsigned int            rri_nsigs;      /*  size  of
sigs array */
             char                    *rri_name;      /* canonical
name */
             struct rdatainfo        *rri_rdatas;    /* individual records */
             struct rdatainfo        *rri_sigs;      /* individual signatures */
     };

     All of the information returned by getrrsetbyname()  is  dynamically allocated:
  the  rrsetinfo  and  rdatainfo  structures,  and the
canonical host
     name strings pointed to by the rrsetinfo structure.   Memory
allocated for
     the dynamically allocated structures created by a successful
call to
     getrrsetbyname() is released by  freerrset().   rrset  is  a
pointer to a
     struct rrset created by a call to getrrsetbyname().

     If   the   EDNS0  option  is  activated  in  resolv.conf(5),
getrrsetbyname() will
     request DNSSEC authentication using the EDNS0 DNSSEC OK (DO)
bit.

RETURN VALUES    [Toc]    [Back]

     getrrsetbyname()  returns  zero  on  success, and one of the
following error
     codes if an error occurred:

     ERRSET_NONAME    the name does not exist
     ERRSET_NODATA    the name exists, but does not have data  of
the desired
                      type
     ERRSET_NOMEMORY  memory could not be allocated
     ERRSET_INVAL     a parameter is invalid
     ERRSET_FAIL      other failure

SEE ALSO    [Toc]    [Back]

      
      
     resolver(3), resolv.conf(5), named(8)

HISTORY    [Toc]    [Back]

     getrrsetbyname()  first  appeared  in  OpenBSD 3.0.  The API
first appeared
     in ISC BIND version 9.

AUTHORS    [Toc]    [Back]

     Jakob Schlyter <[email protected]>

CAVEATS    [Toc]    [Back]

     The RRSET_VALIDATED flag in rri_flags is set if the AD  (authenticated data)
  bit  in the DNS answer is set.  This flag should not be
trusted unless
     the transport between the nameserver and the resolver is secure (e.g.
     IPsec, trusted network, loopback communication).

BUGS    [Toc]    [Back]

     The  data  in  *rdi_data  should be returned in uncompressed
wire format.
     Currently, the data is in compressed format and  the  caller
can't uncompress
 since it doesn't have the full message.

OpenBSD      3.6                         October     18,     2000
[ Back ]
 Similar pages
Name OS Title
acctwtmp Tru64 Modify connect time accounting records to change formats and to make corrections in the records
wtmpfix Tru64 Modify connect time accounting records to change formats and to make corrections in the records
fwtmp Tru64 Modify connect time accounting records to change formats and to make corrections in the records
utmp FreeBSD login records
utmp OpenBSD login records
wtmp FreeBSD login records
wtmp Tru64 Login records
utmp Tru64 Login records
lastlog FreeBSD login records
wtmp OpenBSD login records
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service