lwres_getaddrinfo.docbook revision f5d30e2864e048a42c4dc1134993ae7efdb5d6c3
bcb4e51a409d94ae670de96afb8483a4f7855294Stephan Bosch<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd"
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen [<!ENTITY mdash "&#8212;">]>
16f816d3f3c32ae3351834253f52ddd0212bcbf3Timo Sirainen<!--
6789ed17e7ca4021713507baf0dcf6979bb42e0cTimo Sirainen - Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
7a54d58280aad8a64f266c61273ea1e8dff511a3Timo Sirainen - Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen -
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen - Permission to use, copy, modify, and distribute this software for any
b7f14c9568e7edc75d1d7fd86751c02bc97cde3eTimo Sirainen - purpose with or without fee is hereby granted, provided that the above
436adac819e7cbeef04af08dcc6a4f3ecd4a1d9eMartti Rannanjärvi - copyright notice and this permission notice appear in all copies.
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen -
57e3b63a75335f45cf6cf9cd89317e2e6cec249dStephan Bosch - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
52fbebc87d7ae4fc4585863d38cb87f166a6521aTimo Sirainen - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
6789ed17e7ca4021713507baf0dcf6979bb42e0cTimo Sirainen - PERFORMANCE OF THIS SOFTWARE.
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen-->
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen
7c3f90095b4168d89a268ac1ec820c5925d48fd3Timo Sirainen<!-- $Id: lwres_getaddrinfo.docbook,v 1.10 2005/05/13 01:35:46 marka Exp $ -->
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen<refentry>
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen
e15b305e90c9834734ccf35ed78f0ad29d570ee9Timo Sirainen <refentryinfo>
e15b305e90c9834734ccf35ed78f0ad29d570ee9Timo Sirainen <date>Jun 30, 2000</date>
52fbebc87d7ae4fc4585863d38cb87f166a6521aTimo Sirainen </refentryinfo>
52fbebc87d7ae4fc4585863d38cb87f166a6521aTimo Sirainen
52fbebc87d7ae4fc4585863d38cb87f166a6521aTimo Sirainen <refmeta>
31be5ed1551c98cddeb2295a594f010aaf4b76bcTimo Sirainen <refentrytitle>lwres_getaddrinfo</refentrytitle>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <manvolnum>3</manvolnum>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <refmiscinfo>BIND9</refmiscinfo>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen </refmeta>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <docinfo>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <copyright>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <year>2004</year>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <year>2005</year>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen </copyright>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <copyright>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <year>2000</year>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <year>2001</year>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <year>2003</year>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <holder>Internet Software Consortium.</holder>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen </copyright>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen </docinfo>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <refnamediv>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <refname>lwres_getaddrinfo</refname>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <refname>lwres_freeaddrinfo</refname>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <refpurpose>socket address structure to host and service name</refpurpose>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen </refnamediv>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <refsynopsisdiv>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <funcsynopsis>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen<funcsynopsisinfo>#include &lt;lwres/netdb.h&gt;</funcsynopsisinfo>
147a788fea2a88f7125b27226451271d55cf5b01Timo Sirainen<funcprototype>
147a788fea2a88f7125b27226451271d55cf5b01Timo Sirainen <funcdef>
147a788fea2a88f7125b27226451271d55cf5b01Timo Sirainenint
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen<function>lwres_getaddrinfo</function></funcdef>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <paramdef>const char *<parameter>hostname</parameter></paramdef>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <paramdef>const char *<parameter>servname</parameter></paramdef>
6e8f0036cad59d1d6bcd9ef69bfe712d01656ca3Timo Sirainen <paramdef>const struct addrinfo *<parameter>hints</parameter></paramdef>
6e8f0036cad59d1d6bcd9ef69bfe712d01656ca3Timo Sirainen <paramdef>struct addrinfo **<parameter>res</parameter></paramdef>
52fbebc87d7ae4fc4585863d38cb87f166a6521aTimo Sirainen </funcprototype>
52fbebc87d7ae4fc4585863d38cb87f166a6521aTimo Sirainen<funcprototype>
5df33e9ee65eec194105b338c55dedbf8422f695Timo Sirainen <funcdef>
4cce36128569c68a999e98c9034bfb1bc177f1ffTimo Sirainenvoid
4cce36128569c68a999e98c9034bfb1bc177f1ffTimo Sirainen<function>lwres_freeaddrinfo</function></funcdef>
4cce36128569c68a999e98c9034bfb1bc177f1ffTimo Sirainen <paramdef>struct addrinfo *<parameter>ai</parameter></paramdef>
e015e2f7e7f48874495f9df8b0dd192b7ffcb5ccTimo Sirainen </funcprototype>
e015e2f7e7f48874495f9df8b0dd192b7ffcb5ccTimo Sirainen</funcsynopsis>
21a2a03602a45b1c74f2dfa80ee972b481da8c2aTimo Sirainen
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen <para>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen If the operating system does not provide a
eb34def8809d7509cfdcc1ce60a353c2585ec9e9Josef 'Jeff' Sipek <type>struct addrinfo</type>,
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen the following structure is used:
b0a901f1dbe9e05ac1c92a0974af6bce0274f31aTimo Sirainen </para>
b0a901f1dbe9e05ac1c92a0974af6bce0274f31aTimo Sirainen <para><programlisting>
b0a901f1dbe9e05ac1c92a0974af6bce0274f31aTimo Sirainenstruct addrinfo {
b0a901f1dbe9e05ac1c92a0974af6bce0274f31aTimo Sirainen int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
b0a901f1dbe9e05ac1c92a0974af6bce0274f31aTimo Sirainen int ai_family; /* PF_xxx */
c04f9a724a7b3cc649485a61b0a540868d25d71bTimo Sirainen int ai_socktype; /* SOCK_xxx */
c04f9a724a7b3cc649485a61b0a540868d25d71bTimo Sirainen int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
b0a901f1dbe9e05ac1c92a0974af6bce0274f31aTimo Sirainen size_t ai_addrlen; /* length of ai_addr */
2d01cc1880cf2afd4fb1c8ad7fa6ce78e562e71eTimo Sirainen char *ai_canonname; /* canonical name for hostname */
b0a901f1dbe9e05ac1c92a0974af6bce0274f31aTimo Sirainen struct sockaddr *ai_addr; /* binary address */
b0a901f1dbe9e05ac1c92a0974af6bce0274f31aTimo Sirainen struct addrinfo *ai_next; /* next structure in linked list */
b0a901f1dbe9e05ac1c92a0974af6bce0274f31aTimo Sirainen};
46114180b41dc7cac5e7b0242ad347b4acdbaa5aTimo Sirainen</programlisting>
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen </para>
c04f9a724a7b3cc649485a61b0a540868d25d71bTimo Sirainen
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen </refsynopsisdiv>
46114180b41dc7cac5e7b0242ad347b4acdbaa5aTimo Sirainen
c147bff818798a979d93537f72f5c1f68f5d5ba8Aki Tuomi <refsect1>
46114180b41dc7cac5e7b0242ad347b4acdbaa5aTimo Sirainen <title>DESCRIPTION</title>
46114180b41dc7cac5e7b0242ad347b4acdbaa5aTimo Sirainen
46114180b41dc7cac5e7b0242ad347b4acdbaa5aTimo Sirainen <para><function>lwres_getaddrinfo()</function>
46114180b41dc7cac5e7b0242ad347b4acdbaa5aTimo Sirainen is used to get a list of IP addresses and port numbers for host
46114180b41dc7cac5e7b0242ad347b4acdbaa5aTimo Sirainen <parameter>hostname</parameter> and service
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen <parameter>servname</parameter>.
1171f0abf442638bac1827bb24a0b6b8eb682a82Timo Sirainen
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen The function is the lightweight resolver's implementation of
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen <function>getaddrinfo()</function> as defined in RFC2133.
46114180b41dc7cac5e7b0242ad347b4acdbaa5aTimo Sirainen <parameter>hostname</parameter> and
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen <parameter>servname</parameter> are pointers to null-terminated
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen strings or <type>NULL</type>.
5f44975ec6c5755dd74bcd4c47a123a7242ecab3Timo Sirainen
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen <parameter>hostname</parameter> is either a host name or a
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen numeric host address string: a dotted decimal IPv4 address or an
7522446d6514e5593c9d4d7e4beacd328301cb23Aki Tuomi IPv6 address. <parameter>servname</parameter> is either a
46114180b41dc7cac5e7b0242ad347b4acdbaa5aTimo Sirainen decimal port number or a service name as listed in
46114180b41dc7cac5e7b0242ad347b4acdbaa5aTimo Sirainen <filename>/etc/services</filename>.
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen </para>
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen <para><parameter>hints</parameter>
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen is an optional pointer to a
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen <type>struct addrinfo</type>.
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen This structure can be used to provide hints concerning the type of
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen socket
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen that the caller supports or wishes to use.
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen The caller can supply the following structure elements in
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen <parameter>*hints</parameter>:
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen <variablelist>
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen <varlistentry>
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen <term><constant>ai_family</constant></term>
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen <listitem>
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen <para>
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen The protocol family that should be used.
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen When
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen <constant>ai_family</constant>
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen is set to
992a13add4eea0810e4db0f042a595dddf85536aTimo Sirainen <type>PF_UNSPEC</type>,
19e8adccba16ff419f5675b1575358c2956dce83Timo Sirainen it means the caller will accept any protocol family supported by
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen the
19e8adccba16ff419f5675b1575358c2956dce83Timo Sirainen operating system.
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen </para>
1b4441e3e6f9e78ebeae8218de971959cd55bf60Timo Sirainen </listitem>
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen </varlistentry>
6e0054c2e5efc526df6287da368335680a856714Timo Sirainen <varlistentry>
884228e5496378bada39a932db67aa3d9478198fTimo Sirainen <term><constant>ai_socktype</constant></term>
fdc557286bc9f92c5f3bb49096ff6e2bcec0ea79Timo Sirainen <listitem>
fdc557286bc9f92c5f3bb49096ff6e2bcec0ea79Timo Sirainen <para>
6e0054c2e5efc526df6287da368335680a856714Timo Sirainen denotes the type of socket &mdash;
fdc557286bc9f92c5f3bb49096ff6e2bcec0ea79Timo Sirainen <type>SOCK_STREAM</type>,
fdc557286bc9f92c5f3bb49096ff6e2bcec0ea79Timo Sirainen <type>SOCK_DGRAM</type>
6e0054c2e5efc526df6287da368335680a856714Timo Sirainen or
6e0054c2e5efc526df6287da368335680a856714Timo Sirainen <type>SOCK_RAW</type>
1b4441e3e6f9e78ebeae8218de971959cd55bf60Timo Sirainen &mdash; that is wanted.
1b4441e3e6f9e78ebeae8218de971959cd55bf60Timo Sirainen When
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen <constant>ai_socktype</constant>
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen is zero the caller will accept any socket type.
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen </para>
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen </listitem>
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen </varlistentry>
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen <varlistentry>
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen <term><constant>ai_protocol</constant></term>
87490012895b4f371635ded00add04c9107dcfefJosef 'Jeff' Sipek <listitem>
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen <para>
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen indicates which transport protocol is wanted: IPPROTO_UDP or
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen IPPROTO_TCP.
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen If
0206dc57f2c04da69599dea5816235cfeb2b897aMartti Rannanjärvi <constant>ai_protocol</constant>
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen is zero the caller will accept any protocol.
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen </para>
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen </listitem>
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen </varlistentry>
489301ee88b2174e3171875e979e667de2c4a174Timo Sirainen <varlistentry>
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen <term><constant>ai_flags</constant></term>
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen <listitem>
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen <para>
1171f0abf442638bac1827bb24a0b6b8eb682a82Timo Sirainen Flag bits.
c04f9a724a7b3cc649485a61b0a540868d25d71bTimo Sirainen If the
8e361d2906b0e44f7175a20981f8d2280645b58bTimo Sirainen <type>AI_CANONNAME</type>
d9a7e950a9cd21f2b4a90ec7759fca9e8fcc7995Timo Sirainen bit is set, a successful call to
1171f0abf442638bac1827bb24a0b6b8eb682a82Timo Sirainen <function>lwres_getaddrinfo()</function>
3281669db44d09a087a203201248abbc81b3cc1aTimo Sirainen will return a null-terminated string containing the canonical
8e361d2906b0e44f7175a20981f8d2280645b58bTimo Sirainen name
8e361d2906b0e44f7175a20981f8d2280645b58bTimo Sirainen of the specified hostname in
8e361d2906b0e44f7175a20981f8d2280645b58bTimo Sirainen <constant>ai_canonname</constant>
8e361d2906b0e44f7175a20981f8d2280645b58bTimo Sirainen of the first
8e361d2906b0e44f7175a20981f8d2280645b58bTimo Sirainen <type>addrinfo</type>
8e361d2906b0e44f7175a20981f8d2280645b58bTimo Sirainen structure returned.
1171f0abf442638bac1827bb24a0b6b8eb682a82Timo Sirainen Setting the
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen <type>AI_PASSIVE</type>
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen bit indicates that the returned socket address structure is
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen intended
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen for used in a call to
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen <citerefentry>
a39292e6410a30805b020acf4fc916210ae54e86Timo Sirainen <refentrytitle>bind</refentrytitle><manvolnum>2</manvolnum>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen </citerefentry>.
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen In this case, if the hostname argument is a
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <type>NULL</type>
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen pointer, then the IP address portion of the socket
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen address structure will be set to
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <type>INADDR_ANY</type>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen for an IPv4 address or
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <type>IN6ADDR_ANY_INIT</type>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen for an IPv6 address.
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen </para>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <para>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen When
0737a4fe0b83a05f335a8ad02e833b62565a36daTimo Sirainen <constant>ai_flags</constant>
0737a4fe0b83a05f335a8ad02e833b62565a36daTimo Sirainen does not set the
0737a4fe0b83a05f335a8ad02e833b62565a36daTimo Sirainen <type>AI_PASSIVE</type>
0737a4fe0b83a05f335a8ad02e833b62565a36daTimo Sirainen bit, the returned socket address structure will be ready
0737a4fe0b83a05f335a8ad02e833b62565a36daTimo Sirainen for use in a call to
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <citerefentry>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <refentrytitle>connect</refentrytitle><manvolnum>2</manvolnum>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen </citerefentry>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen for a connection-oriented protocol or
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <citerefentry>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <refentrytitle>connect</refentrytitle><manvolnum>2</manvolnum>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen </citerefentry>,
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <citerefentry>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <refentrytitle>sendto</refentrytitle><manvolnum>2</manvolnum>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen </citerefentry>,
3fe9483b2b412a14493e3120751b0e99ecfe9388Timo Sirainen
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen or
3fe9483b2b412a14493e3120751b0e99ecfe9388Timo Sirainen <citerefentry>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <refentrytitle>sendmsg</refentrytitle><manvolnum>2</manvolnum>
3fe9483b2b412a14493e3120751b0e99ecfe9388Timo Sirainen </citerefentry>
3fe9483b2b412a14493e3120751b0e99ecfe9388Timo Sirainen if a connectionless protocol was chosen.
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen The IP address portion of the socket address structure will be
817d027593510c3ba70ad542ce0011f5f6916d1eTimo Sirainen set to the loopback address if
3fe9483b2b412a14493e3120751b0e99ecfe9388Timo Sirainen <parameter>hostname</parameter>
439980f88f421039dea8335e92d3fa82b3f470a1Timo Sirainen is a
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <type>NULL</type>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen pointer and
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <type>AI_PASSIVE</type>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen is not set in
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <constant>ai_flags</constant>.
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen </para>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen <para>
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen If
3fe9483b2b412a14493e3120751b0e99ecfe9388Timo Sirainen <constant>ai_flags</constant>
16c89b1260c9d07c01c83a9219424d3727069b2eTimo Sirainen is set to
16c89b1260c9d07c01c83a9219424d3727069b2eTimo Sirainen <type>AI_NUMERICHOST</type>
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen it indicates that
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen <parameter>hostname</parameter>
87490012895b4f371635ded00add04c9107dcfefJosef 'Jeff' Sipek should be treated as a numeric string defining an IPv4 or IPv6
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen address
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen and no name resolution should be attempted.
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen </para>
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen </listitem>
ca98d6a1bbe73499da758a36bfab2963375c8d06Timo Sirainen </varlistentry>
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen </variablelist>
cd83124e5d070a016c590bb0b1096d7828c7b6adTimo Sirainen </para>
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen <para>
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainen All other elements of the <type>struct addrinfo</type> passed
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen via <parameter>hints</parameter> must be zero.
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen </para>
87490012895b4f371635ded00add04c9107dcfefJosef 'Jeff' Sipek
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen <para>
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen A <parameter>hints</parameter> of <type>NULL</type> is
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen treated as if
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen the caller provided a <type>struct addrinfo</type> initialized to zero
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen with <constant>ai_family</constant>set to
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen <constant>PF_UNSPEC</constant>.
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen </para>
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen <para>
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen After a successful call to
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen <function>lwres_getaddrinfo()</function>,
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen <parameter>*res</parameter>
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen is a pointer to a linked list of one or more
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen <type>addrinfo</type>
f46885a5b78b15a8d2419f6e5d13b643bd85e41fTimo Sirainen structures.
a757f31393b9d6fc7760a9dec8363404ab3ae576Timo Sirainen Each
16c89b1260c9d07c01c83a9219424d3727069b2eTimo Sirainen <type>struct addrinfo</type>
87490012895b4f371635ded00add04c9107dcfefJosef 'Jeff' Sipek in this list cn be processed by following
16c89b1260c9d07c01c83a9219424d3727069b2eTimo Sirainen the
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen <constant>ai_next</constant>
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen pointer, until a
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen <type>NULL</type>
16c89b1260c9d07c01c83a9219424d3727069b2eTimo Sirainen pointer is encountered.
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen The three members
c6eca51b54586c1f37cfe39e38c844da3f937a4dTimo Sirainen <constant>ai_family</constant>,
16c89b1260c9d07c01c83a9219424d3727069b2eTimo Sirainen <constant>ai_socktype</constant>,
a757f31393b9d6fc7760a9dec8363404ab3ae576Timo Sirainen and
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen <constant>ai_protocol</constant>
a757f31393b9d6fc7760a9dec8363404ab3ae576Timo Sirainen in each
bb6a0eeab27569790d58a036f67dcd2a965fc539Timo Sirainen returned
5f44975ec6c5755dd74bcd4c47a123a7242ecab3Timo Sirainen <type>addrinfo</type>
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen structure contain the corresponding arguments for a call to
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen <citerefentry>
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen <refentrytitle>socket</refentrytitle><manvolnum>2</manvolnum>
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen </citerefentry>.
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen For each
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen <type>addrinfo</type>
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen structure in the list, the
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen <constant>ai_addr</constant>
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen member points to a filled-in socket address structure of length
31a574fda352ef4f71dbff9c30e15e4744e132c0Timo Sirainen <constant>ai_addrlen</constant>.
c6eca51b54586c1f37cfe39e38c844da3f937a4dTimo Sirainen </para>
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen <para>
a757f31393b9d6fc7760a9dec8363404ab3ae576Timo Sirainen All of the information returned by
a757f31393b9d6fc7760a9dec8363404ab3ae576Timo Sirainen <function>lwres_getaddrinfo()</function>
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen is dynamically allocated: the addrinfo structures, and the socket
87490012895b4f371635ded00add04c9107dcfefJosef 'Jeff' Sipek address structures and canonical host name strings pointed to by the
a757f31393b9d6fc7760a9dec8363404ab3ae576Timo Sirainen <constant>addrinfo</constant>structures.
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen Memory allocated for the dynamically allocated structures created by
a757f31393b9d6fc7760a9dec8363404ab3ae576Timo Sirainen a successful call to
5f44975ec6c5755dd74bcd4c47a123a7242ecab3Timo Sirainen <function>lwres_getaddrinfo()</function>
cd83124e5d070a016c590bb0b1096d7828c7b6adTimo Sirainen is released by
3fe9483b2b412a14493e3120751b0e99ecfe9388Timo Sirainen <function>lwres_freeaddrinfo()</function>.
a757f31393b9d6fc7760a9dec8363404ab3ae576Timo Sirainen <parameter>ai</parameter>
a757f31393b9d6fc7760a9dec8363404ab3ae576Timo Sirainen is a pointer to a
a757f31393b9d6fc7760a9dec8363404ab3ae576Timo Sirainen <type>struct addrinfo</type>
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen created by a call to
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen <function>lwres_getaddrinfo()</function>.
c0225f7f6b43d34dc58c17d3304f0fd60ab89894Timo Sirainen </para>
645f258ea29afaf09b673fc65d1bd788dfec8db8Timo Sirainen
87490012895b4f371635ded00add04c9107dcfefJosef 'Jeff' Sipek </refsect1>
645f258ea29afaf09b673fc65d1bd788dfec8db8Timo Sirainen
645f258ea29afaf09b673fc65d1bd788dfec8db8Timo Sirainen <refsect1>
ae1b268ffff743ad9927c304a1344c5cbd7f909dTimo Sirainen <title>RETURN VALUES</title>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen <para><function>lwres_getaddrinfo()</function>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen returns zero on success or one of the error codes listed in
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen <citerefentry>
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen <refentrytitle>gai_strerror</refentrytitle><manvolnum>3</manvolnum>
96541d31299bb40b5a6efdbf9b4cb3d4f4b4a069Timo Sirainen </citerefentry>
02b78558dc03daa2e7da2010b63f247b49936a38Timo Sirainen if an error occurs. If both <parameter>hostname</parameter> and
02b78558dc03daa2e7da2010b63f247b49936a38Timo Sirainen <parameter>servname</parameter> are <type>NULL</type>
02b78558dc03daa2e7da2010b63f247b49936a38Timo Sirainen <function>lwres_getaddrinfo()</function> returns
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen <errorcode>EAI_NONAME</errorcode>.
49f65b7c797515d787bcbc9cbeb78f0c21b1b282Timo Sirainen </para>
96541d31299bb40b5a6efdbf9b4cb3d4f4b4a069Timo Sirainen </refsect1>
bb6a0eeab27569790d58a036f67dcd2a965fc539Timo Sirainen <refsect1>
49f65b7c797515d787bcbc9cbeb78f0c21b1b282Timo Sirainen <title>SEE ALSO</title>
49f65b7c797515d787bcbc9cbeb78f0c21b1b282Timo Sirainen <para><citerefentry>
49f65b7c797515d787bcbc9cbeb78f0c21b1b282Timo Sirainen <refentrytitle>lwres</refentrytitle><manvolnum>3</manvolnum>
49f65b7c797515d787bcbc9cbeb78f0c21b1b282Timo Sirainen </citerefentry>,
49f65b7c797515d787bcbc9cbeb78f0c21b1b282Timo Sirainen
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen <citerefentry>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen <refentrytitle>lwres_getaddrinfo</refentrytitle><manvolnum>3</manvolnum>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen </citerefentry>,
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen
e8a59a1671127f87e2d22f42e84c572f28299d81Timo Sirainen <citerefentry>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen <refentrytitle>lwres_freeaddrinfo</refentrytitle><manvolnum>3</manvolnum>
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen </citerefentry>,
87490012895b4f371635ded00add04c9107dcfefJosef 'Jeff' Sipek
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen <citerefentry>
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen <refentrytitle>lwres_gai_strerror</refentrytitle><manvolnum>3</manvolnum>
ae1b268ffff743ad9927c304a1344c5cbd7f909dTimo Sirainen </citerefentry>,
1d5f06e1f3226cf07d1521cee1b6b14744845273Timo Sirainen
e192a3b1ca8ae857e7d87298ea507d32977ba570Timo Sirainen <citerefentry>
e192a3b1ca8ae857e7d87298ea507d32977ba570Timo Sirainen <refentrytitle>RFC2133</refentrytitle>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen </citerefentry>,
e192a3b1ca8ae857e7d87298ea507d32977ba570Timo Sirainen
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen <citerefentry>
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen <refentrytitle>getservbyname</refentrytitle><manvolnum>3</manvolnum>
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen </citerefentry>,
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen
ae1b268ffff743ad9927c304a1344c5cbd7f909dTimo Sirainen <citerefentry>
90adcaa0a00eba29b7fbd50ca66be11c8d086d6aTimo Sirainen <refentrytitle>bind</refentrytitle><manvolnum>2</manvolnum>
90adcaa0a00eba29b7fbd50ca66be11c8d086d6aTimo Sirainen </citerefentry>,
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen
90adcaa0a00eba29b7fbd50ca66be11c8d086d6aTimo Sirainen <citerefentry>
87490012895b4f371635ded00add04c9107dcfefJosef 'Jeff' Sipek <refentrytitle>connect</refentrytitle><manvolnum>2</manvolnum>
90adcaa0a00eba29b7fbd50ca66be11c8d086d6aTimo Sirainen </citerefentry>,
90adcaa0a00eba29b7fbd50ca66be11c8d086d6aTimo Sirainen
ae1b268ffff743ad9927c304a1344c5cbd7f909dTimo Sirainen <citerefentry>
90adcaa0a00eba29b7fbd50ca66be11c8d086d6aTimo Sirainen <refentrytitle>sendto</refentrytitle><manvolnum>2</manvolnum>
e192a3b1ca8ae857e7d87298ea507d32977ba570Timo Sirainen </citerefentry>,
e192a3b1ca8ae857e7d87298ea507d32977ba570Timo Sirainen
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen <citerefentry>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen <refentrytitle>sendmsg</refentrytitle><manvolnum>2</manvolnum>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen </citerefentry>,
90adcaa0a00eba29b7fbd50ca66be11c8d086d6aTimo Sirainen
90adcaa0a00eba29b7fbd50ca66be11c8d086d6aTimo Sirainen <citerefentry>
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen <refentrytitle>socket</refentrytitle><manvolnum>2</manvolnum>
ae1b268ffff743ad9927c304a1344c5cbd7f909dTimo Sirainen </citerefentry>.
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen </para>
8fcff4c5b52f24d9c681805fdf06b486f1d0fcbeTimo Sirainen
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen </refsect1>
7a54d58280aad8a64f266c61273ea1e8dff511a3Timo Sirainen</refentry><!--
7a54d58280aad8a64f266c61273ea1e8dff511a3Timo Sirainen - Local variables:
7a54d58280aad8a64f266c61273ea1e8dff511a3Timo Sirainen - mode: sgml
7a54d58280aad8a64f266c61273ea1e8dff511a3Timo Sirainen - End:
83bb013a99f0936995f9c7a1077822662d8fefdbTimo Sirainen-->
7a54d58280aad8a64f266c61273ea1e8dff511a3Timo Sirainen