144 lines
3.9 KiB
Groff
144 lines
3.9 KiB
Groff
.\"
|
|
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
|
.\"
|
|
.\" Permission to use, copy, modify, and distribute this software for any
|
|
.\" purpose with or without fee is hereby granted, provided that the above
|
|
.\" copyright notice and this permission notice appear in all copies.
|
|
.\"
|
|
.\" THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
|
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
|
.\" INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
|
|
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
|
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
|
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
.\"
|
|
.TH "LWRES_GETRRSETBYNAME" "3" "Oct 18, 2000" "BIND9" ""
|
|
.SH NAME
|
|
lwres_getrrsetbyname, lwres_freerrset \- retrieve DNS records
|
|
.SH SYNOPSIS
|
|
\fB#include <lwres/netdb.h>
|
|
.sp
|
|
.na
|
|
int
|
|
lwres_getrrsetbyname(const char *hostname, unsigned int rdclass, unsigned int rdtype, unsigned int flags, struct rrsetinfo **res);
|
|
.ad
|
|
.sp
|
|
.na
|
|
void
|
|
lwres_freerrset(struct rrsetinfo *rrset);
|
|
.ad
|
|
\fR
|
|
.PP
|
|
The following structures are used:
|
|
.sp
|
|
.nf
|
|
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 */
|
|
};
|
|
.sp
|
|
.fi
|
|
.SH "DESCRIPTION"
|
|
.PP
|
|
\fBlwres_getrrsetbyname()\fR
|
|
gets a set of resource records associated with a
|
|
\fIhostname\fR,
|
|
\fIclass\fR,
|
|
and
|
|
\fItype\fR.
|
|
\fIhostname\fR
|
|
is
|
|
a pointer a to null-terminated string. The
|
|
\fIflags\fR
|
|
field is currently unused and must be zero.
|
|
.PP
|
|
After a successful call to
|
|
\fBlwres_getrrsetbyname()\fR,
|
|
\fI*res\fR
|
|
is a pointer to an
|
|
\fBrrsetinfo\fR
|
|
structure, containing a list of one or more
|
|
\fBrdatainfo\fR
|
|
structures containing resource records and potentially another list of
|
|
\fBrdatainfo\fR
|
|
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.
|
|
.PP
|
|
All of the information returned by
|
|
\fBlwres_getrrsetbyname()\fR
|
|
is dynamically allocated: the
|
|
rrsetinfo
|
|
and
|
|
rdatainfo
|
|
structures,
|
|
and the canonical host name strings pointed to by the
|
|
rrsetinfostructure.
|
|
Memory allocated for the dynamically allocated structures created by
|
|
a successful call to
|
|
\fBlwres_getrrsetbyname()\fR
|
|
is released by
|
|
\fBlwres_freerrset()\fR.
|
|
\fIrrset\fR
|
|
is a pointer to a
|
|
\fBstruct rrset\fR
|
|
created by a call to
|
|
\fBlwres_getrrsetbyname()\fR.
|
|
.PP
|
|
.SH "RETURN VALUES"
|
|
.PP
|
|
\fBlwres_getrrsetbyname()\fR
|
|
returns zero on success, and one of the following error
|
|
codes if an error occurred:
|
|
.TP
|
|
\fBERRSET_NONAME\fR
|
|
the name does not exist
|
|
.TP
|
|
\fBERRSET_NODATA\fR
|
|
the name exists, but does not have data of the desired type
|
|
.TP
|
|
\fBERRSET_NOMEMORY\fR
|
|
memory could not be allocated
|
|
.TP
|
|
\fBERRSET_INVAL\fR
|
|
a parameter is invalid
|
|
.TP
|
|
\fBERRSET_FAIL\fR
|
|
other failure
|
|
.TP
|
|
\fB\fR
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
\fBlwres\fR(3).
|