PageRenderTime 14ms CodeModel.GetById 8ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 1ms

/contrib/bind9/lib/lwres/man/lwres_getipnode.3

https://bitbucket.org/freebsd/freebsd-head/
Unknown | 206 lines | 206 code | 0 blank | 0 comment | 0 complexity | 47a6857bb3eb45903754535874f6ff51 MD5 | raw file
  1.\" Copyright (C) 2004, 2005, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
  2.\" Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
  3.\" 
  4.\" Permission to use, copy, modify, and/or distribute this software for any
  5.\" purpose with or without fee is hereby granted, provided that the above
  6.\" copyright notice and this permission notice appear in all copies.
  7.\" 
  8.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
  9.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 10.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
 11.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
 12.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
 13.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 14.\" PERFORMANCE OF THIS SOFTWARE.
 15.\"
 16.\" $Id$
 17.\"
 18.hy 0
 19.ad l
 20.\"     Title: lwres_getipnode
 21.\"    Author: 
 22.\" Generator: DocBook XSL Stylesheets v1.71.1 <http://docbook.sf.net/>
 23.\"      Date: Jun 30, 2000
 24.\"    Manual: BIND9
 25.\"    Source: BIND9
 26.\"
 27.TH "LWRES_GETIPNODE" "3" "Jun 30, 2000" "BIND9" "BIND9"
 28.\" disable hyphenation
 29.nh
 30.\" disable justification (adjust text to left margin only)
 31.ad l
 32.SH "NAME"
 33lwres_getipnodebyname, lwres_getipnodebyaddr, lwres_freehostent \- lightweight resolver nodename / address translation API
 34.SH "SYNOPSIS"
 35.nf
 36#include <lwres/netdb.h>
 37.fi
 38.HP 39
 39.BI "struct hostent * lwres_getipnodebyname(const\ char\ *" "name" ", int\ " "af" ", int\ " "flags" ", int\ *" "error_num" ");"
 40.HP 39
 41.BI "struct hostent * lwres_getipnodebyaddr(const\ void\ *" "src" ", size_t\ " "len" ", int\ " "af" ", int\ *" "error_num" ");"
 42.HP 23
 43.BI "void lwres_freehostent(struct\ hostent\ *" "he" ");"
 44.SH "DESCRIPTION"
 45.PP
 46These functions perform thread safe, protocol independent nodename\-to\-address and address\-to\-nodename translation as defined in RFC2553.
 47.PP
 48They use a
 49\fBstruct hostent\fR
 50which is defined in
 51\fInamedb.h\fR:
 52.PP
 53.RS 4
 54.nf
 55struct  hostent {
 56        char    *h_name;        /* official name of host */
 57        char    **h_aliases;    /* alias list */
 58        int     h_addrtype;     /* host address type */
 59        int     h_length;       /* length of address */
 60        char    **h_addr_list;  /* list of addresses from name server */
 61};
 62#define h_addr  h_addr_list[0]  /* address, for backward compatibility */
 63.fi
 64.RE
 65.sp
 66.PP
 67The members of this structure are:
 68.PP
 69\fBh_name\fR
 70.RS 4
 71The official (canonical) name of the host.
 72.RE
 73.PP
 74\fBh_aliases\fR
 75.RS 4
 76A NULL\-terminated array of alternate names (nicknames) for the host.
 77.RE
 78.PP
 79\fBh_addrtype\fR
 80.RS 4
 81The type of address being returned \- usually
 82\fBPF_INET\fR
 83or
 84\fBPF_INET6\fR.
 85.RE
 86.PP
 87\fBh_length\fR
 88.RS 4
 89The length of the address in bytes.
 90.RE
 91.PP
 92\fBh_addr_list\fR
 93.RS 4
 94A
 95\fBNULL\fR
 96terminated array of network addresses for the host. Host addresses are returned in network byte order.
 97.RE
 98.PP
 99\fBlwres_getipnodebyname()\fR
100looks up addresses of protocol family
101\fIaf\fR
102for the hostname
103\fIname\fR. The
104\fIflags\fR
105parameter contains ORed flag bits to specify the types of addresses that are searched for, and the types of addresses that are returned. The flag bits are:
106.PP
107\fBAI_V4MAPPED\fR
108.RS 4
109This is used with an
110\fIaf\fR
111of AF_INET6, and causes IPv4 addresses to be returned as IPv4\-mapped IPv6 addresses.
112.RE
113.PP
114\fBAI_ALL\fR
115.RS 4
116This is used with an
117\fIaf\fR
118of AF_INET6, and causes all known addresses (IPv6 and IPv4) to be returned. If AI_V4MAPPED is also set, the IPv4 addresses are return as mapped IPv6 addresses.
119.RE
120.PP
121\fBAI_ADDRCONFIG\fR
122.RS 4
123Only return an IPv6 or IPv4 address if here is an active network interface of that type. This is not currently implemented in the BIND 9 lightweight resolver, and the flag is ignored.
124.RE
125.PP
126\fBAI_DEFAULT\fR
127.RS 4
128This default sets the
129\fBAI_V4MAPPED\fR
130and
131\fBAI_ADDRCONFIG\fR
132flag bits.
133.RE
134.PP
135\fBlwres_getipnodebyaddr()\fR
136performs a reverse lookup of address
137\fIsrc\fR
138which is
139\fIlen\fR
140bytes long.
141\fIaf\fR
142denotes the protocol family, typically
143\fBPF_INET\fR
144or
145\fBPF_INET6\fR.
146.PP
147\fBlwres_freehostent()\fR
148releases all the memory associated with the
149\fBstruct hostent\fR
150pointer
151\fIhe\fR. Any memory allocated for the
152\fBh_name\fR,
153\fBh_addr_list\fR
154and
155\fBh_aliases\fR
156is freed, as is the memory for the
157\fBhostent\fR
158structure itself.
159.SH "RETURN VALUES"
160.PP
161If an error occurs,
162\fBlwres_getipnodebyname()\fR
163and
164\fBlwres_getipnodebyaddr()\fR
165set
166\fI*error_num\fR
167to an appropriate error code and the function returns a
168\fBNULL\fR
169pointer. The error codes and their meanings are defined in
170\fI<lwres/netdb.h>\fR:
171.PP
172\fBHOST_NOT_FOUND\fR
173.RS 4
174No such host is known.
175.RE
176.PP
177\fBNO_ADDRESS\fR
178.RS 4
179The server recognised the request and the name but no address is available. Another type of request to the name server for the domain might return an answer.
180.RE
181.PP
182\fBTRY_AGAIN\fR
183.RS 4
184A temporary and possibly transient error occurred, such as a failure of a server to respond. The request may succeed if retried.
185.RE
186.PP
187\fBNO_RECOVERY\fR
188.RS 4
189An unexpected failure occurred, and retrying the request is pointless.
190.RE
191.PP
192\fBlwres_hstrerror\fR(3)
193translates these error codes to suitable error messages.
194.SH "SEE ALSO"
195.PP
196\fBRFC2553\fR(),
197\fBlwres\fR(3),
198\fBlwres_gethostent\fR(3),
199\fBlwres_getaddrinfo\fR(3),
200\fBlwres_getnameinfo\fR(3),
201\fBlwres_hstrerror\fR(3).
202.SH "COPYRIGHT"
203Copyright \(co 2004, 2005, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
204.br
205Copyright \(co 2000, 2001, 2003 Internet Software Consortium.
206.br