lwres_getnameinfo.docbook revision 2eeb74d1cf5355dd98f6d507a10086e16bb08c4b
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee<!--
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - Copyright (C) 2000, 2001 Internet Software Consortium.
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee -
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - Permission to use, copy, modify, and/or distribute this software for any
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - purpose with or without fee is hereby granted, provided that the above
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - copyright notice and this permission notice appear in all copies.
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee -
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee - PERFORMANCE OF THIS SOFTWARE.
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee-->
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee<!-- Converted by db4-upgrade version 1.0 -->
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee<refentry xmlns="http://docbook.org/ns/docbook" version="5.0">
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <info>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <date>2007-06-18</date>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee </info>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <refentryinfo>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <corpname>ISC</corpname>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <corpauthor>Internet Systems Consortium, Inc.</corpauthor>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee </refentryinfo>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <refmeta>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <refentrytitle>lwres_getnameinfo</refentrytitle>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <manvolnum>3</manvolnum>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <refmiscinfo>BIND9</refmiscinfo>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee </refmeta>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <docinfo>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <copyright>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <year>2004</year>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <year>2005</year>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <year>2007</year>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <year>2014</year>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee </copyright>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <copyright>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <year>2000</year>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <year>2001</year>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <holder>Internet Software Consortium.</holder>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee </copyright>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee </docinfo>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <refnamediv>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <refname>lwres_getnameinfo</refname>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <refpurpose>lightweight resolver socket address structure to hostname and
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee service name
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee </refpurpose>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee </refnamediv>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <refsynopsisdiv>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <funcsynopsis>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee<funcsynopsisinfo>#include &lt;lwres/netdb.h&gt;</funcsynopsisinfo>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee<funcprototype>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <funcdef>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlcleeint
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee<function>lwres_getnameinfo</function></funcdef>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <paramdef>const struct sockaddr *<parameter>sa</parameter></paramdef>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <paramdef>size_t <parameter>salen</parameter></paramdef>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <paramdef>char *<parameter>host</parameter></paramdef>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <paramdef>size_t <parameter>hostlen</parameter></paramdef>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <paramdef>char *<parameter>serv</parameter></paramdef>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <paramdef>size_t <parameter>servlen</parameter></paramdef>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee <paramdef>int <parameter>flags</parameter></paramdef>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee </funcprototype>
3ccda6479cf240cd732ac4b7a8a82fcc1716496dlclee</funcsynopsis>
</refsynopsisdiv>
<refsection><info><title>DESCRIPTION</title></info>
<para>
This function is equivalent to the
<citerefentry>
<refentrytitle>getnameinfo</refentrytitle><manvolnum>3</manvolnum>
</citerefentry> function defined in RFC2133.
<function>lwres_getnameinfo()</function> returns the
hostname for the
<type>struct sockaddr</type> <parameter>sa</parameter> which
is
<parameter>salen</parameter> bytes long. The hostname is of
length
<parameter>hostlen</parameter> and is returned via
<parameter>*host.</parameter> The maximum length of the
hostname is
1025 bytes: <constant>NI_MAXHOST</constant>.
</para>
<para> The name of the service associated with the port number in
<parameter>sa</parameter> is returned in <parameter>*serv.</parameter>
It is <parameter>servlen</parameter> bytes long. The
maximum length
of the service name is <constant>NI_MAXSERV</constant> - 32
bytes.
</para>
<para>
The <parameter>flags</parameter> argument sets the
following
bits:
<variablelist>
<varlistentry>
<term><constant>NI_NOFQDN</constant></term>
<listitem>
<para>
A fully qualified domain name is not required for local hosts.
The local part of the fully qualified domain name is returned
instead.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>NI_NUMERICHOST</constant></term>
<listitem>
<para>
Return the address in numeric form, as if calling inet_ntop(),
instead of a host name.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>NI_NAMEREQD</constant></term>
<listitem>
<para>
A name is required. If the hostname cannot be found in the DNS
and
this flag is set, a non-zero error code is returned.
If the hostname is not found and the flag is not set, the
address is returned in numeric form.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>NI_NUMERICSERV</constant></term>
<listitem>
<para>
The service name is returned as a digit string representing the
port number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>NI_DGRAM</constant></term>
<listitem>
<para>
Specifies that the service being looked up is a datagram
service, and causes getservbyport() to be called with a second
argument of "udp" instead of its default of "tcp". This is
required
for the few ports (512-514) that have different services for UDP
and
TCP.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsection>
<refsection><info><title>RETURN VALUES</title></info>
<para><function>lwres_getnameinfo()</function>
returns 0 on success or a non-zero error code if an error occurs.
</para>
</refsection>
<refsection><info><title>SEE ALSO</title></info>
<para><citerefentry>
<refentrytitle>RFC2133</refentrytitle>
</citerefentry>,
<citerefentry>
<refentrytitle>getservbyport</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>lwres</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>lwres_getnameinfo</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>lwres_getnamebyaddr</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>.
<citerefentry>
<refentrytitle>lwres_net_ntop</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>.
</para>
</refsection>
<refsection><info><title>BUGS</title></info>
<para>
RFC2133 fails to define what the nonzero return values of
<citerefentry>
<refentrytitle>getnameinfo</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>
are.
</para>
</refsection>
</refentry>