lwres_getrrsetbyname.html revision e3f6b4d2195b2fcd28f769452d460d1b35f1952a
905N/A<!--
905N/A - Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
905N/A - Copyright (C) 2000, 2001 Internet Software Consortium.
905N/A -
905N/A - Permission to use, copy, modify, and distribute this software for any
905N/A - purpose with or without fee is hereby granted, provided that the above
905N/A - copyright notice and this permission notice appear in all copies.
905N/A -
905N/A - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
905N/A - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
905N/A - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
905N/A - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
905N/A - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
905N/A - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
905N/A - PERFORMANCE OF THIS SOFTWARE.
905N/A-->
905N/A<HTML
905N/A><HEAD
905N/A><TITLE
905N/A>lwres_getrrsetbyname</TITLE
7049N/A><META
905N/ANAME="GENERATOR"
3996N/ACONTENT="Modular DocBook HTML Stylesheet Version 1.73
905N/A"></HEAD
905N/A><BODY
905N/ACLASS="REFENTRY"
4448N/ABGCOLOR="#FFFFFF"
905N/ATEXT="#000000"
4448N/ALINK="#0000FF"
905N/AVLINK="#840084"
4448N/AALINK="#0000FF"
905N/A><H1
4448N/A><A
4448N/ANAME="AEN1"
4448N/A>lwres_getrrsetbyname</A
905N/A></H1
4448N/A><DIV
4448N/ACLASS="REFNAMEDIV"
4450N/A><A
4448N/ANAME="AEN8"
4450N/A></A
4450N/A><H2
4448N/A>Name</H2
4448N/A>lwres_getrrsetbyname, lwres_freerrset&nbsp;--&nbsp;retrieve DNS records</DIV
4448N/A><DIV
4448N/ACLASS="REFSYNOPSISDIV"
4448N/A><A
4448N/ANAME="AEN12"
3661N/A></A
4448N/A><H2
4448N/A>Synopsis</H2
4448N/A><DIV
4448N/ACLASS="FUNCSYNOPSIS"
4448N/A><A
4448N/ANAME="AEN13"
4448N/A></A
4448N/A><P
4448N/A></P
4448N/A><PRE
4448N/ACLASS="FUNCSYNOPSISINFO"
4448N/A>#include &lt;lwres/netdb.h&gt;</PRE
4448N/A><P
4448N/A><CODE
4448N/A><CODE
4448N/ACLASS="FUNCDEF"
4448N/A>int
4448N/Alwres_getrrsetbyname</CODE
4448N/A>(const char *hostname, unsigned int rdclass, unsigned int rdtype, unsigned int flags, struct rrsetinfo **res);</CODE
4448N/A></P
4448N/A><P
4448N/A><CODE
4448N/A><CODE
4448N/ACLASS="FUNCDEF"
4448N/A>void
4448N/Alwres_freerrset</CODE
4448N/A>(struct rrsetinfo *rrset);</CODE
4448N/A></P
4448N/A><P
905N/A></P
905N/A></DIV
4448N/A><P
4448N/A>The following structures are used:
4448N/A<PRE
4448N/ACLASS="PROGRAMLISTING"
4448N/A>struct rdatainfo {
4448N/A unsigned int rdi_length; /* length of data */
905N/A unsigned char *rdi_data; /* record data */
7049N/A};
7049N/A
7049N/Astruct rrsetinfo {
7049N/A unsigned int rri_flags; /* RRSET_VALIDATED... */
905N/A unsigned int rri_rdclass; /* class number */
905N/A unsigned int rri_rdtype; /* RR type number */
905N/A unsigned int rri_ttl; /* time to live */
905N/A unsigned int rri_nrdatas; /* size of rdatas array */
905N/A unsigned int rri_nsigs; /* size of sigs array */
905N/A char *rri_name; /* canonical name */
905N/A struct rdatainfo *rri_rdatas; /* individual records */
4448N/A struct rdatainfo *rri_sigs; /* individual signatures */
4448N/A};</PRE
4448N/A></P
4448N/A></DIV
4448N/A><DIV
4448N/ACLASS="REFSECT1"
4448N/A><A
4448N/ANAME="AEN29"
4448N/A></A
4448N/A><H2
905N/A>DESCRIPTION</H2
4448N/A><P
4448N/A><TT
4448N/ACLASS="FUNCTION"
905N/A>lwres_getrrsetbyname()</TT
4448N/A>
4448N/Agets a set of resource records associated with a
4448N/A<TT
4448N/ACLASS="PARAMETER"
4448N/A><I
4448N/A>hostname</I
4448N/A></TT
4448N/A>,
4448N/A
4448N/A<TT
4448N/ACLASS="PARAMETER"
905N/A><I
4448N/A>class</I
4448N/A></TT
4448N/A>,
4448N/A
905N/Aand
905N/A<TT
3319N/ACLASS="PARAMETER"
905N/A><I
3996N/A>type</I
4448N/A></TT
3996N/A>.
4448N/A
3996N/A<TT
3996N/ACLASS="PARAMETER"
3996N/A><I
>hostname</I
></TT
>
is
a pointer a to null-terminated string. The
<TT
CLASS="PARAMETER"
><I
>flags</I
></TT
>
field is currently unused and must be zero.</P
><P
>After a successful call to
<TT
CLASS="FUNCTION"
>lwres_getrrsetbyname()</TT
>,
<TT
CLASS="PARAMETER"
><I
>*res</I
></TT
>
is a pointer to an
<SPAN
CLASS="TYPE"
>rrsetinfo</SPAN
>
structure, containing a list of one or more
<SPAN
CLASS="TYPE"
>rdatainfo</SPAN
>
structures containing resource records and potentially another list of
<SPAN
CLASS="TYPE"
>rdatainfo</SPAN
>
structures containing SIG resource records
associated with those records.
The members
<TT
CLASS="CONSTANT"
>rri_rdclass</TT
>
and
<TT
CLASS="CONSTANT"
>rri_rdtype</TT
>
are copied from the parameters.
<TT
CLASS="CONSTANT"
>rri_ttl</TT
>
and
<TT
CLASS="CONSTANT"
>rri_name</TT
>
are properties of the obtained rrset.
The resource records contained in
<TT
CLASS="CONSTANT"
>rri_rdatas</TT
>
and
<TT
CLASS="CONSTANT"
>rri_sigs</TT
>
are in uncompressed DNS wire format.
Properties of the rdataset are represented in the
<TT
CLASS="CONSTANT"
>rri_flags</TT
>
bitfield. If the RRSET_VALIDATED bit is set, the data has been DNSSEC
validated and the signatures verified. </P
><P
>All of the information returned by
<TT
CLASS="FUNCTION"
>lwres_getrrsetbyname()</TT
>
is dynamically allocated: the
<TT
CLASS="CONSTANT"
>rrsetinfo</TT
>
and
<TT
CLASS="CONSTANT"
>rdatainfo</TT
>
structures,
and the canonical host name strings pointed to by the
<TT
CLASS="CONSTANT"
>rrsetinfo</TT
>structure.
Memory allocated for the dynamically allocated structures created by
a successful call to
<TT
CLASS="FUNCTION"
>lwres_getrrsetbyname()</TT
>
is released by
<TT
CLASS="FUNCTION"
>lwres_freerrset()</TT
>.
<TT
CLASS="PARAMETER"
><I
>rrset</I
></TT
>
is a pointer to a
<SPAN
CLASS="TYPE"
>struct rrset</SPAN
>
created by a call to
<TT
CLASS="FUNCTION"
>lwres_getrrsetbyname()</TT
>.&#13;</P
><P
></P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN62"
></A
><H2
>RETURN VALUES</H2
><P
><TT
CLASS="FUNCTION"
>lwres_getrrsetbyname()</TT
>
returns zero on success, and one of the following error
codes if an error occurred:
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="CONSTANT"
>ERRSET_NONAME</TT
></DT
><DD
><P
>the name does not exist</P
></DD
><DT
><TT
CLASS="CONSTANT"
>ERRSET_NODATA</TT
></DT
><DD
><P
>the name exists, but does not have data of the desired type</P
></DD
><DT
><TT
CLASS="CONSTANT"
>ERRSET_NOMEMORY</TT
></DT
><DD
><P
>memory could not be allocated</P
></DD
><DT
><TT
CLASS="CONSTANT"
>ERRSET_INVAL</TT
></DT
><DD
><P
>a parameter is invalid</P
></DD
><DT
><TT
CLASS="CONSTANT"
>ERRSET_FAIL</TT
></DT
><DD
><P
>other failure</P
></DD
><DT
><TT
CLASS="CONSTANT"
></TT
></DT
><DD
><P
></P
></DD
></DL
></DIV
>&#13;</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN97"
></A
><H2
>SEE ALSO</H2
><P
><SPAN
CLASS="CITEREFENTRY"
><SPAN
CLASS="REFENTRYTITLE"
>lwres</SPAN
>(3)</SPAN
>.</P
></DIV
></BODY
></HTML
>