lwres_getnameinfo.html revision cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4
d657c51f14601d0235434ffb78cf6ac0f27cc83cLennart Poettering<!--
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poettering - Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann - Copyright (C) 2000, 2001 Internet Software Consortium.
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann -
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann - Permission to use, copy, modify, and distribute this software for any
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann - purpose with or without fee is hereby granted, provided that the above
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann - copyright notice and this permission notice appear in all copies.
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann -
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
01608bc86a104423d192364f9534b83d0c75db7fKay Sievers - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann - PERFORMANCE OF THIS SOFTWARE.
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack-->
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<!-- $Id: lwres_getnameinfo.html,v 1.18 2005/10/13 03:14:02 marka Exp $ -->
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<html>
37d54b938faeefd0a5a74f9197a33d78bbb8d6bfDaniel Mack<head>
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<title>lwres_getnameinfo</title>
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack</head>
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<a name="id2463721"></a><div class="titlepage"></div>
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<div class="refnamediv">
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<h2>Name</h2>
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<p>lwres_getnameinfo &#8212; lightweight resolver socket address structure to hostname and
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack service name
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack </p>
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack</div>
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<div class="refsynopsisdiv">
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<h2>Synopsis</h2>
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<div class="funcsynopsis">
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<pre class="funcsynopsisinfo">#include &lt;lwres/netdb.h&gt;</pre>
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<tr>
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mack<td><code class="funcdef">
931618d08c64083ff7b29c494f482c40a5b05608Daniel Mackint
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<b class="fsfunc">lwres_getnameinfo</b>(</code></td>
f5f113f66692abaf72e83698cb7b4f3690b90cf8David Herrmann<td>const struct sockaddr *�</td>
f5f113f66692abaf72e83698cb7b4f3690b90cf8David Herrmann<td>
f5f113f66692abaf72e83698cb7b4f3690b90cf8David Herrmann<var class="pdparam">sa</var>, </td>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann</tr>
01608bc86a104423d192364f9534b83d0c75db7fKay Sievers<tr>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<td>�</td>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<td>size_t �</td>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<td>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<var class="pdparam">salen</var>, </td>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann</tr>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<tr>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<td>�</td>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<td>char *�</td>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<td>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<var class="pdparam">host</var>, </td>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann</tr>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann<tr>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann<td>�</td>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann<td>size_t �</td>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann<td>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann<var class="pdparam">hostlen</var>, </td>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann</tr>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann<tr>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann<td>�</td>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann<td>char *�</td>
e4e66993951e9e349e8008fa7c81184b6e4ae385David Herrmann<td>
e57eaef8a187762ca92838c24b9b6460878a800cDavid Herrmann<var class="pdparam">serv</var>, </td>
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann</tr>
5541c88977e63215e74b7517fb33cb27e5a04f17David Herrmann<tr>
861b02ebd6ec997a6880824960ba8903bac74f7dKay Sievers<td>�</td>
861b02ebd6ec997a6880824960ba8903bac74f7dKay Sievers<td>size_t �</td>
861b02ebd6ec997a6880824960ba8903bac74f7dKay Sievers<td>
861b02ebd6ec997a6880824960ba8903bac74f7dKay Sievers<var class="pdparam">servlen</var>, </td>
861b02ebd6ec997a6880824960ba8903bac74f7dKay Sievers</tr>
861b02ebd6ec997a6880824960ba8903bac74f7dKay Sievers<tr>
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann<td>�</td>
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann<td>int �</td>
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann<td>
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann<var class="pdparam">flags</var><code>)</code>;</td>
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann</tr>
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann</table>
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann</div>
5541c88977e63215e74b7517fb33cb27e5a04f17David Herrmann</div>
5541c88977e63215e74b7517fb33cb27e5a04f17David Herrmann<div class="refsect1" lang="en">
5541c88977e63215e74b7517fb33cb27e5a04f17David Herrmann<a name="id2525885"></a><h2>DESCRIPTION</h2>
5541c88977e63215e74b7517fb33cb27e5a04f17David Herrmann<p>
9b361114f568e839784a3aeba5c1df5a95e86832Daniel Mack This function is equivalent to the
9b361114f568e839784a3aeba5c1df5a95e86832Daniel Mack <span class="citerefentry"><span class="refentrytitle">getnameinfo</span>(3)</span> function defined in RFC2133.
9b361114f568e839784a3aeba5c1df5a95e86832Daniel Mack <code class="function">lwres_getnameinfo()</code> returns the
9b361114f568e839784a3aeba5c1df5a95e86832Daniel Mack hostname for the
9b361114f568e839784a3aeba5c1df5a95e86832Daniel Mack <span class="type">struct sockaddr</span> <em class="parameter"><code>sa</code></em> which
9b361114f568e839784a3aeba5c1df5a95e86832Daniel Mack is
9b361114f568e839784a3aeba5c1df5a95e86832Daniel Mack <em class="parameter"><code>salen</code></em> bytes long. The hostname is of
9b361114f568e839784a3aeba5c1df5a95e86832Daniel Mack length
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann <em class="parameter"><code>hostlen</code></em> and is returned via
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann <em class="parameter"><code>*host.</code></em> The maximum length of the
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann hostname is
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann 1025 bytes: <code class="constant">NI_MAXHOST</code>.
5541c88977e63215e74b7517fb33cb27e5a04f17David Herrmann </p>
5541c88977e63215e74b7517fb33cb27e5a04f17David Herrmann<p> The name of the service associated with the port number in
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann <em class="parameter"><code>sa</code></em> is returned in <em class="parameter"><code>*serv.</code></em>
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann It is <em class="parameter"><code>servlen</code></em> bytes long. The
2d1ca11270e66777c90a449096203afebc37ec9cDavid Herrmann maximum length
2d1ca11270e66777c90a449096203afebc37ec9cDavid Herrmann of the service name is <code class="constant">NI_MAXSERV</code> - 32
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann bytes.
2d1ca11270e66777c90a449096203afebc37ec9cDavid Herrmann </p>
0db83ad7334809a6605501e24bad55f3b652c072David Herrmann<p>
0f0467e63b0e0688ae9edb1512c1a2637d62ddb4Martin Pitt The <em class="parameter"><code>flags</code></em> argument sets the
0f0467e63b0e0688ae9edb1512c1a2637d62ddb4Martin Pitt following
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering bits:
5f92d24fa85d6652c4754e3b3b2a3393026bd0b9Kay Sievers </p>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<div class="variablelist"><dl>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<dt><span class="term"><code class="constant">NI_NOFQDN</code></span></dt>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<dd><p>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering A fully qualified domain name is not required for local hosts.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering The local part of the fully qualified domain name is returned
0aee49d5fba2b2ec94e5c069d937004858a04b4fThomas Hindoe Paaboel Andersen instead.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering </p></dd>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<dt><span class="term"><code class="constant">NI_NUMERICHOST</code></span></dt>
5f92d24fa85d6652c4754e3b3b2a3393026bd0b9Kay Sievers<dd><p>
0f0467e63b0e0688ae9edb1512c1a2637d62ddb4Martin Pitt Return the address in numeric form, as if calling inet_ntop(),
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering instead of a host name.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering </p></dd>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<dt><span class="term"><code class="constant">NI_NAMEREQD</code></span></dt>
c65514649680e5d5ee6a118db6e5b20438cb1710Ronny Chevalier<dd><p>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering A name is required. If the hostname cannot be found in the DNS
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering and
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering this flag is set, a non-zero error code is returned.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering If the hostname is not found and the flag is not set, the
0aee49d5fba2b2ec94e5c069d937004858a04b4fThomas Hindoe Paaboel Andersen address is returned in numeric form.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering </p></dd>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<dt><span class="term"><code class="constant">NI_NUMERICSERV</code></span></dt>
0f0467e63b0e0688ae9edb1512c1a2637d62ddb4Martin Pitt<dd><p>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering The service name is returned as a digit string representing the
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering port number.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering </p></dd>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<dt><span class="term"><code class="constant">NI_DGRAM</code></span></dt>
0aee49d5fba2b2ec94e5c069d937004858a04b4fThomas Hindoe Paaboel Andersen<dd><p>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering Specifies that the service being looked up is a datagram
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering service, and causes getservbyport() to be called with a second
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering argument of "udp" instead of its default of "tcp". This is
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering required
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering for the few ports (512-514) that have different services for UDP
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering and
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering TCP.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering </p></dd>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering</dl></div>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<p>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering </p>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering</div>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<div class="refsect1" lang="en">
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<a name="id2526027"></a><h2>RETURN VALUES</h2>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<p><code class="function">lwres_getnameinfo()</code>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering returns 0 on success or a non-zero error code if an error occurs.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering </p>
0aee49d5fba2b2ec94e5c069d937004858a04b4fThomas Hindoe Paaboel Andersen</div>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<div class="refsect1" lang="en">
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<a name="id2526039"></a><h2>SEE ALSO</h2>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<p><span class="citerefentry"><span class="refentrytitle">RFC2133</span></span>,
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering <span class="citerefentry"><span class="refentrytitle">getservbyport</span>(3)</span>,
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering <span class="citerefentry"><span class="refentrytitle">lwres</span>(3)</span>,
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering <span class="citerefentry"><span class="refentrytitle">lwres_getnameinfo</span>(3)</span>,
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering <span class="citerefentry"><span class="refentrytitle">lwres_getnamebyaddr</span>(3)</span>.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering <span class="citerefentry"><span class="refentrytitle">lwres_net_ntop</span>(3)</span>.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering </p>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering</div>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<div class="refsect1" lang="en">
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<a name="id2526097"></a><h2>BUGS</h2>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering<p>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering RFC2133 fails to define what the nonzero return values of
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering <span class="citerefentry"><span class="refentrytitle">getnameinfo</span>(3)</span>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering are.
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering </p>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering</div>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering</div></body>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering</html>
470e72d4081c7d0fd74666b7a45358d5ee2abee1Lennart Poettering