lwres_gethostent.docbook revision 1753d3c4d74241a847794f7e7cfd94cc79be6600
37bd255fd499c26aaf474f4294212951b84d9068Mark Andrews<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
37bd255fd499c26aaf474f4294212951b84d9068Mark Andrews "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
37bd255fd499c26aaf474f4294212951b84d9068Mark Andrews [<!ENTITY mdash "—">]>
7aa21a491d9468bfc29d8cc331a4e963874426dfFrancis Dupont - Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
7aa21a491d9468bfc29d8cc331a4e963874426dfFrancis Dupont - Copyright (C) 2001 Internet Software Consortium.
34416a7954da96c5a5f5803fe02f059cb94bf6fdMark Andrews - Permission to use, copy, modify, and/or distribute this software for any
34416a7954da96c5a5f5803fe02f059cb94bf6fdMark Andrews - purpose with or without fee is hereby granted, provided that the above
11e9195ad15d1a3f2b4dcd79b64a6e19d89bbac3Mark Andrews - copyright notice and this permission notice appear in all copies.
12a67391fd763fa67764dc993173eb0e90076503Mark Andrews - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
12a67391fd763fa67764dc993173eb0e90076503Mark Andrews - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
03152360db6fcb0fcc95fa63c20c5c829c95f1f6Mark Andrews - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
03152360db6fcb0fcc95fa63c20c5c829c95f1f6Mark Andrews - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
03152360db6fcb0fcc95fa63c20c5c829c95f1f6Mark Andrews - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
aacd7daaf7859de742ab35eac00e70676b1b9f4fEvan Hunt - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
aacd7daaf7859de742ab35eac00e70676b1b9f4fEvan Hunt - PERFORMANCE OF THIS SOFTWARE.
a379c8c108de279cc4e09139c12457c1531bd122Mark Andrews <refentryinfo>
7433a204d32673e9f6747172f202272cc5bfe27cMark Andrews </refentryinfo>
1a4725bef25e60de161f77318f362c327b690d72Mark Andrews <refentrytitle>lwres_gethostent</refentrytitle>
5116f25421090dffe637eb8f6cf7b44acd83678bMark Andrews <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
00043fc284892099b309be37340ae80893146c69Mark Andrews </copyright>
9fa2a0deed3b880f3bf04d4f615c13a0d67cc0ceMark Andrews </copyright>
97a2a26cd93e153dcf8fb1ea6bf2311426496251Mark Andrews <refnamediv>
76df835d59b4715dbd3346fd65114714a42495c9Mark Andrews <refpurpose>lightweight resolver get network host entry</refpurpose>
18df9e628ea10c7d607f43fcfd935e7924731f24Evan Hunt </refnamediv>
54a00ea5ca94ff9e3a4204aea78639ba781d5865Mark Andrews <refsynopsisdiv>
18df9e628ea10c7d607f43fcfd935e7924731f24Evan Hunt <funcsynopsis>
cb69994ff89179166d5e21ccc7a34223b51676c0Mark Andrews<funcsynopsisinfo>#include <lwres/netdb.h></funcsynopsisinfo>
cb69994ff89179166d5e21ccc7a34223b51676c0Mark Andrews<funcprototype>
3ad8f24ddd043148525b68a676ebdc71f6900ca9Mark Andrewsstruct hostent *
3ad8f24ddd043148525b68a676ebdc71f6900ca9Mark Andrews<function>lwres_gethostbyname</function></funcdef>
3ad8f24ddd043148525b68a676ebdc71f6900ca9Mark Andrews <paramdef>const char *<parameter>name</parameter></paramdef>
2bae76022cbdf8a207d4c3982b589156e1a09e09Evan Hunt </funcprototype>
2bae76022cbdf8a207d4c3982b589156e1a09e09Evan Hunt<funcprototype>
0c91911b4d1e872b87eaf6431ed47fe24d18dd43Mark Andrewsstruct hostent *
2634686b14ccdf0aa18a6d346628d03ce3e3d0b4Mark Andrews<function>lwres_gethostbyname2</function></funcdef>
54a00ea5ca94ff9e3a4204aea78639ba781d5865Mark Andrews <paramdef>const char *<parameter>name</parameter></paramdef>
b5f4cc132e91afb1217f4aa79424793c0e11c09aMark Andrews <paramdef>int <parameter>af</parameter></paramdef>
b5f4cc132e91afb1217f4aa79424793c0e11c09aMark Andrews </funcprototype>
54a00ea5ca94ff9e3a4204aea78639ba781d5865Mark Andrews<funcprototype>
8afea636ab0c07399aa3e2410b2cfbd41099df98Mark Andrewsstruct hostent *
8afea636ab0c07399aa3e2410b2cfbd41099df98Mark Andrews<function>lwres_gethostbyaddr</function></funcdef>
8afea636ab0c07399aa3e2410b2cfbd41099df98Mark Andrews <paramdef>const char *<parameter>addr</parameter></paramdef>
d6f99498d624d5c5c8ee45067df02e6a6b35a1a3Mark Andrews <paramdef>int <parameter>len</parameter></paramdef>
d6f99498d624d5c5c8ee45067df02e6a6b35a1a3Mark Andrews <paramdef>int <parameter>type</parameter></paramdef>
d6f99498d624d5c5c8ee45067df02e6a6b35a1a3Mark Andrews </funcprototype>
54a00ea5ca94ff9e3a4204aea78639ba781d5865Mark Andrews<funcprototype>
c4348cb50f039f0785bd1d6f6a37c0a85d15c1f4Curtis Blackburnstruct hostent *
997c2c5116927bab77284c24c3bd0d7f646da5eeMark Andrews </funcprototype>
e548e07a9a2f1ec64774d7ae872d530eaf270eb7Mark Andrews<funcprototype>
fdc41dd109fba6b95a4ed7355210118ad9fe5e90Jeremy C. Reed <paramdef>int <parameter>stayopen</parameter></paramdef>
d1e22676de16e6dee54c58b27cca11c5fb8f1ff5Mark Andrews </funcprototype>
0e1dfb8ff5ac2cf1215691ffc32d7a0b76709721Mark Andrews<funcprototype>
8e091f3d3ee0079f35dfccdc4479105e8f087ab2Mark Andrews </funcprototype>
7ace3277956c49f7554b7130ef761bde3b35db30Mark Andrews<funcprototype>
7ace3277956c49f7554b7130ef761bde3b35db30Mark Andrewsstruct hostent *
06ace051e7522b153b487581c9439fc8c162fb18Mark Andrews<function>lwres_gethostbyname_r</function></funcdef>
06ace051e7522b153b487581c9439fc8c162fb18Mark Andrews <paramdef>const char *<parameter>name</parameter></paramdef>
06ace051e7522b153b487581c9439fc8c162fb18Mark Andrews <paramdef>struct hostent *<parameter>resbuf</parameter></paramdef>
5d4343a9988cd5bd057aa385bb8c5e72d41202d1Evan Hunt <paramdef>char *<parameter>buf</parameter></paramdef>
5d4343a9988cd5bd057aa385bb8c5e72d41202d1Evan Hunt <paramdef>int <parameter>buflen</parameter></paramdef>
75ae74f8fd0847817bce2db7c868b179db67f019Mark Andrews <paramdef>int *<parameter>error</parameter></paramdef>
75ae74f8fd0847817bce2db7c868b179db67f019Mark Andrews </funcprototype>
75ae74f8fd0847817bce2db7c868b179db67f019Mark Andrews<funcprototype>
16bd30ae6987cd4ba4fe3b873e72abf5b7178c26Mark Andrewsstruct hostent *
16bd30ae6987cd4ba4fe3b873e72abf5b7178c26Mark Andrews<function>lwres_gethostbyaddr_r</function></funcdef>
16bd30ae6987cd4ba4fe3b873e72abf5b7178c26Mark Andrews <paramdef>const char *<parameter>addr</parameter></paramdef>
df0892aea6bfd20a01c3abf2b756625d23830390Mark Andrews <paramdef>int <parameter>len</parameter></paramdef>
df0892aea6bfd20a01c3abf2b756625d23830390Mark Andrews <paramdef>int <parameter>type</parameter></paramdef>
a499dddb4b4d4db2bb6ced82b5ee7a459e23603eEvan Hunt <paramdef>struct hostent *<parameter>resbuf</parameter></paramdef>
a499dddb4b4d4db2bb6ced82b5ee7a459e23603eEvan Hunt <paramdef>char *<parameter>buf</parameter></paramdef>
f45f6541857a5dbb93ac24f321b9cf350ce242baMark Andrews <paramdef>int <parameter>buflen</parameter></paramdef>
f45f6541857a5dbb93ac24f321b9cf350ce242baMark Andrews <paramdef>int *<parameter>error</parameter></paramdef>
f45f6541857a5dbb93ac24f321b9cf350ce242baMark Andrews </funcprototype>
673a2bb07b9e54a32699a9d7ca916dc5114d8d45Mark Andrews<funcprototype>
673a2bb07b9e54a32699a9d7ca916dc5114d8d45Mark Andrewsstruct hostent *
e3c273a865bede10bfb1e0f29d300706cae3e00dMark Andrews<function>lwres_gethostent_r</function></funcdef>
e3c273a865bede10bfb1e0f29d300706cae3e00dMark Andrews <paramdef>struct hostent *<parameter>resbuf</parameter></paramdef>
d640b4a0ab9dec252749793f78a1ed1e8551ea19Evan Hunt <paramdef>char *<parameter>buf</parameter></paramdef>
d640b4a0ab9dec252749793f78a1ed1e8551ea19Evan Hunt <paramdef>int <parameter>buflen</parameter></paramdef>
d640b4a0ab9dec252749793f78a1ed1e8551ea19Evan Hunt <paramdef>int *<parameter>error</parameter></paramdef>
fdb4ae8f6c00d8ea03bde929bd4e47056972017dMark Andrews </funcprototype>
fdb4ae8f6c00d8ea03bde929bd4e47056972017dMark Andrews<funcprototype>
421d4a06479e61fbdc35087f3c4abc9fe65ad72aEvan Hunt <paramdef>int <parameter>stayopen</parameter></paramdef>
421d4a06479e61fbdc35087f3c4abc9fe65ad72aEvan Hunt </funcprototype>
421d4a06479e61fbdc35087f3c4abc9fe65ad72aEvan Hunt<funcprototype>
421d4a06479e61fbdc35087f3c4abc9fe65ad72aEvan Hunt </funcprototype>
0949306cb96f9ccbb7d0205584ed2db293a5aad2Evan Hunt</funcsynopsis>
0949306cb96f9ccbb7d0205584ed2db293a5aad2Evan Hunt </refsynopsisdiv>
964bdcd7add44e5bc87e1d44f2f4ece351b28eedEvan Hunt These functions provide hostname-to-address and
cf0a69e999430722e3c3942929eeb304b658dfb0Evan Hunt address-to-hostname lookups by means of the lightweight resolver.
cf0a69e999430722e3c3942929eeb304b658dfb0Evan Hunt They are similar to the standard
71697fd082b1c76562dc80fa91787af3860146bfEvan Hunt <citerefentry>
71697fd082b1c76562dc80fa91787af3860146bfEvan Hunt <refentrytitle>gethostent</refentrytitle><manvolnum>3</manvolnum>
71697fd082b1c76562dc80fa91787af3860146bfEvan Hunt </citerefentry>
71697fd082b1c76562dc80fa91787af3860146bfEvan Hunt functions provided by most operating systems.
c174d5c13c03dd59283243e3fd5461d41140a798Evan Hunt which is usually defined in
69f72d1c8f08d69a1c4c0459ba15baaa358d55f4Evan Huntstruct hostent {
4b13ea47db7d72596d3fa10c30b20c16b4936747Evan Hunt char *h_name; /* official name of host */
5b7abbef511cea0b568be0bc8d5b3120a0b9034dEvan Hunt char **h_aliases; /* alias list */
5b7abbef511cea0b568be0bc8d5b3120a0b9034dEvan Hunt int h_addrtype; /* host address type */
5b7abbef511cea0b568be0bc8d5b3120a0b9034dEvan Hunt int h_length; /* length of address */
26bda028ad3854d2e695feb9333ef3dbe6b2fa1aEvan Hunt char **h_addr_list; /* list of addresses from name server */
26bda028ad3854d2e695feb9333ef3dbe6b2fa1aEvan Hunt#define h_addr h_addr_list[0] /* address, for backward compatibility */
eb4458b4784a2206d939f9c4cfed4b37b076b5bcEvan Hunt</programlisting>
1da46be57223340c07ea8505d485ec4397a4e484Evan Hunt The members of this structure are:
1da46be57223340c07ea8505d485ec4397a4e484Evan Hunt <variablelist>
1da46be57223340c07ea8505d485ec4397a4e484Evan Hunt <varlistentry>
9d69017bc635f7be5c8df2b18ae6d4491fc5bb63Mark Andrews The official (canonical) name of the host.
caa0a135d49dfbe3de9711eacf94d6e112a77688Mark Andrews </varlistentry>
caa0a135d49dfbe3de9711eacf94d6e112a77688Mark Andrews <varlistentry>
f42c0dcca86f2009c089e27ba513cb6fc9ee88baEvan Hunt A NULL-terminated array of alternate names (nicknames) for the
682a574e6716cea30386c38e68f4fc6c3d4b20e7Mark Andrews </varlistentry>
682a574e6716cea30386c38e68f4fc6c3d4b20e7Mark Andrews <varlistentry>
3b9ba6bd74e2cbbc0f821e5483ebf46fa8c4d8deEvan Hunt The type of address being returned —
f48358cffb35bb4b24731c136b07816bdcdce651Evan Hunt </varlistentry>
c3b554214416b434c6db7881907c962110aecba9Evan Hunt <varlistentry>
31707708c585c53b61ca1edb2e224e6bb1b985a5Evan Hunt The length of the address in bytes.
b7e40659efd6cf6f5e6b3b1f904f16f74efb0d16Evan Hunt </varlistentry>
8f1e278931689460a49f0e9be610f2b2cc32c42dEvan Hunt <varlistentry>
166c4c6c5bafd25283b797979f77d780856fef30Evan Hunt terminated array of network addresses for the host.
beb12aad6bebb0d6891613e65a4e19a42e6e3f8eMark Andrews Host addresses are returned in network byte order.
8e15d5eb3a000f1341e6bea0ddbc28d6dd2a0591Mark Andrews </varlistentry>
8e15d5eb3a000f1341e6bea0ddbc28d6dd2a0591Mark Andrews </variablelist>
1b2a4ce2b112ec91b0f13c411144e721c7952914Evan Hunt For backward compatibility with very old software,
e59937c7283216ca22ce6e7937b06eab6d97f4acEvan Hunt is the first address in
c6eb92beb1951b0634c349b24891522c273e9f69Mark Andrews provide iteration over the known host entries on systems that
bf0441a339755618efcbe0b427afa5cb8e62dc68Evan Hunt provide such functionality through facilities like
bf0441a339755618efcbe0b427afa5cb8e62dc68Evan Hunt or NIS. The lightweight resolver does not currently implement
8144dc702beec803d7b847e6f28ce845c57ae468Mark Andrews these functions; it only provides them as stub functions that always
8144dc702beec803d7b847e6f28ce845c57ae468Mark Andrews return failure.
7ee225cf90fd06de61682b442600af88b68b99dbMark Andrews <para><function>lwres_gethostbyname()</function>
5f1dc0d505d7f53f1e89a1a41e4c2415af4934feEvan Hunt and <function>lwres_gethostbyname2()</function> look up the
5f1dc0d505d7f53f1e89a1a41e4c2415af4934feEvan Hunt <function>lwres_gethostbyname()</function> always looks for an
276457f7a38f56a5f762238ab89bb45e27948af6Evan Hunt IPv4 address while <function>lwres_gethostbyname2()</function>
b0bd5a3f730410e0bc7ac4e05f061616daf818b2Mark Andrews looks for an address of protocol family
b0bd5a3f730410e0bc7ac4e05f061616daf818b2Mark Andrews <parameter>af</parameter>: either <type>PF_INET</type> or
276457f7a38f56a5f762238ab89bb45e27948af6Evan Hunt <type>PF_INET6</type> — IPv4 or IPV6 addresses
2347c72129ce9393578966225f915284f0730214Mark Andrews respectively. Successful calls of the functions return a
2347c72129ce9393578966225f915284f0730214Mark Andrews <type>struct hostent</type>for the name that was looked up.
1e34fe9044874422104e84373988d07876f716b6Mark Andrews <type>NULL</type> is returned if the lookups by
1e34fe9044874422104e84373988d07876f716b6Mark Andrews <function>lwres_gethostbyname2()</function> fail.
5183f9d9daa139cbf000c12709877f62e79dfb14Evan Hunt Reverse lookups of addresses are performed by
0193e63da91a4da27809b9a528eb043fa6b4da26Mark Andrews <parameter>addr</parameter> is an address of length
0193e63da91a4da27809b9a528eb043fa6b4da26Mark Andrews <parameter>len</parameter> bytes and protocol family
17a00ff54c51f6bdfddd7d9ceaef6f2dcf387cc1Mark Andrews <parameter>type</parameter> — <type>PF_INET</type> or
17a00ff54c51f6bdfddd7d9ceaef6f2dcf387cc1Mark Andrews <function>lwres_gethostbyname_r()</function> is a
5f238c3c64dd68100dc1b60f9c1e178522d1b333Mark Andrews thread-safe function
5f238c3c64dd68100dc1b60f9c1e178522d1b333Mark Andrews for forward lookups. If an error occurs, an error code is returned in
2cd3c8856c97b770cc4843bfad63922e23a6f661Mark Andrews <parameter>resbuf</parameter> is a pointer to a
f3c8e48b95996c3020d138b87ee8941da29cc124Evan Hunt <type>struct hostent</type> which is initialised by a successful call to
744589ff64e8d98b30b746cd7a1833f77830e185Mark Andrews <parameter>len</parameter> bytes which is used to store the
744589ff64e8d98b30b746cd7a1833f77830e185Mark Andrews <constant>h_name</constant>, <constant>h_aliases</constant>, and
744589ff64e8d98b30b746cd7a1833f77830e185Mark Andrews <constant>h_addr_list</constant> elements of the
dc775799d9a5a61f485bff5b883a60cc748afaf3Evan Hunt <type>struct hostent</type> returned in <parameter>resbuf</parameter>.
dc775799d9a5a61f485bff5b883a60cc748afaf3Evan Hunt Successful calls to <function>lwres_gethostbyname_r()</function>
428dd5c588cfe0dc1519af728e6e75c10aeb4439Curtis Blackburn which is a pointer to the <type>struct hostent</type> it created.
0d18225b5e2d17e4bef0077212fd6927ca58dda6Evan Hunt <para><function>lwres_gethostbyaddr_r()</function>
62f016d5d301713c72a59e83d3ab41170a77f674Mark Andrews is a thread-safe function
62f016d5d301713c72a59e83d3ab41170a77f674Mark Andrews that performs a reverse lookup of address <parameter>addr</parameter>
62f016d5d301713c72a59e83d3ab41170a77f674Mark Andrews which is <parameter>len</parameter> bytes long and is of
7ee225cf90fd06de61682b442600af88b68b99dbMark Andrews family <parameter>type</parameter> — <type>PF_INET</type> or
d9f0c713fe1d50f1848ca827c5f31db79d904f04Evan Hunt <type>PF_INET6</type>. If an error occurs, the error code is returned
5ba1d3dcc5739a1f77ec2875b276b163a42ef1e8Evan Hunt in <parameter>*error</parameter>. The other function
5ba1d3dcc5739a1f77ec2875b276b163a42ef1e8Evan Hunt parameters are
5ba1d3dcc5739a1f77ec2875b276b163a42ef1e8Evan Hunt identical to those in <function>lwres_gethostbyname_r()</function>.
af9f195c9e128fc9cc5912498b8f7f26f07887c3Evan Hunt <type>struct hostent</type> which is initialised by a successful call to
e47208b6fb724cba7053baee4246b308e35403a2Evan Hunt <parameter>len</parameter> bytes which is used to store the
34f3693b93f3ba16634f0c08368ef7f81182ef93Evan Hunt <constant>h_name</constant>, <constant>h_aliases</constant>, and
7ee225cf90fd06de61682b442600af88b68b99dbMark Andrews <type>struct hostent</type> returned in <parameter>resbuf</parameter>.
e72a81148a8c68de2ea5e8169aaa4a7762f6ed79Evan Hunt Successful calls to <function>lwres_gethostbyaddr_r()</function> return
1a076410c260ff1d3124ce8b7e22ac111e9cf92aEvan Hunt <parameter>resbuf</parameter>, which is a pointer to the
93aba6dcec9855cd9c69c10717f62c350ff766eaMark Andrews The functions
26bb3b7a67b833f0a18072567de036226890ca1aMark Andrews return NULL to indicate an error. In this case the global variable
9a785712f1eaccba2b43d29a76f4c02ef2c391d0Mark Andrews will contain one of the following error codes defined in
ec8a802114d3cb12805fecf1dd209fe46706b35bMark Andrews <variablelist>
73ad83bcf0664c2774bec67d688a590e992d4629Evan Hunt <varlistentry>
ff5ac6d4213e3e2f3f6a93db8c5e65cc170a7e2bEvan Hunt The host or address was not found.
a6d43d18b1f6164fd144b2fa25ea57f5566b3bf9Evan Hunt </varlistentry>
a6d43d18b1f6164fd144b2fa25ea57f5566b3bf9Evan Hunt <varlistentry>
330f98fe3b12535072708c273eaf59f7bf887065Evan Hunt A recoverable error occurred, e.g., a timeout.
d3c8ba219f7c0fd31aabd06ee6b8ef0e92ef9e14Mark Andrews Retrying the lookup may succeed.
b99bfa184bc9375421b5df915eea7dfac6a68a99Evan Hunt </varlistentry>
b99bfa184bc9375421b5df915eea7dfac6a68a99Evan Hunt <varlistentry>
c4a453fa5c3d8b21d8982137b03e052c0d446c57Evan Hunt A non-recoverable error occurred.
4adf97c32fcca7d00e5756607fd045f2aab9c3d4Mark Andrews </varlistentry>
4adf97c32fcca7d00e5756607fd045f2aab9c3d4Mark Andrews <varlistentry>
1cc4695f0da63f0190e3514adccf6a96f3dc1519Mark Andrews The name exists, but has no address information
3a6d62c59f73d024d1b2ba2ac94d7600530166ffMark Andrews associated with it (or vice versa in the case
3a6d62c59f73d024d1b2ba2ac94d7600530166ffMark Andrews of a reverse lookup). The code NO_ADDRESS
ad668472f1a924e0355faf313e7cdba1970161c8Evan Hunt is accepted as a synonym for NO_DATA for backwards
ad668472f1a924e0355faf313e7cdba1970161c8Evan Hunt compatibility.
dc1ed2622fa78dc21dda49488c496437083e17c9Evan Hunt </varlistentry>
dc1ed2622fa78dc21dda49488c496437083e17c9Evan Hunt </variablelist>
c15b536ddbea458a7a3975079276bf4a9b1617aaMark Andrews <refentrytitle>lwres_hstrerror</refentrytitle><manvolnum>3</manvolnum>
99425bedc4dcd586f751148bbdcba19578c6f39eMark Andrews </citerefentry>
99425bedc4dcd586f751148bbdcba19578c6f39eMark Andrews translates these error codes to suitable error messages.
c548cbbf6b92e4fa5c7c78114c97ef1e50b87379Evan Hunt Successful calls to <function>lwres_gethostbyname_r()</function> and
5805fc20a3f65ee3a78b66aa17801f1d3103cbe1Curtis Blackburn <function>lwres_gethostbyaddr_r()</function> return
e57a83b57659ae1d4f755a7841b519c047ec7f75Evan Hunt <type>struct hostent</type> that was initialised by these functions. They return
e57a83b57659ae1d4f755a7841b519c047ec7f75Evan Hunt <type>NULL</type> if the lookups fail or if <parameter>buf</parameter>
e57a83b57659ae1d4f755a7841b519c047ec7f75Evan Hunt was too small to hold the list of addresses and names referenced by
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt the <constant>h_name</constant>, <constant>h_aliases</constant>, and
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt <function>lwres_gethostbyaddr_r()</function> set the global
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt <type>errno</type> to <errorcode>ERANGE</errorcode>.
da4436812c7108dd39e09069d4af770eaa738c7fMark Andrews <refentrytitle>gethostent</refentrytitle><manvolnum>3</manvolnum>
da4436812c7108dd39e09069d4af770eaa738c7fMark Andrews </citerefentry>,
da4436812c7108dd39e09069d4af770eaa738c7fMark Andrews <citerefentry>
c82da2167dcbd8300f0eaa81fb900c0b17e8f94cMark Andrews <refentrytitle>lwres_getipnode</refentrytitle><manvolnum>3</manvolnum>
c82da2167dcbd8300f0eaa81fb900c0b17e8f94cMark Andrews </citerefentry>,
384fef003441df4067b773688237700513390f9eEvan Hunt <citerefentry>
384fef003441df4067b773688237700513390f9eEvan Hunt <refentrytitle>lwres_hstrerror</refentrytitle><manvolnum>3</manvolnum>
06a05efc07ac7b6ff1973a6463291f5d48ece6ebMark Andrews </citerefentry>
831f59eb43b56642b00f82e07722836d2f9593abEvan Hunt are not thread safe; they return pointers to static data and
a13aa526be16869d1284256fbb2136f4d50ed1d7Evan Hunt provide error codes through a global variable.
a13aa526be16869d1284256fbb2136f4d50ed1d7Evan Hunt Thread-safe versions for name and address lookup are provided by
741ebf10047c3e32e1a0691316ec45666f003583Evan Hunt respectively.
4eb998928b9aef0ceda42d7529980d658138698aEvan Hunt The resolver daemon does not currently support any non-DNS
4eb998928b9aef0ceda42d7529980d658138698aEvan Hunt name services such as
4eb998928b9aef0ceda42d7529980d658138698aEvan Hunt consequently the above functions don't, either.
feb067b25a8e33db62e2a7bf2e83bbb7f6eee845Evan Hunt - Local variables:
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt - mode: sgml