lwres_getaddrinfo.html revision 8de7014e56565605a51898a2a33a8b08fd3f1e57
79b14df7653121c98527a72d1f6f94d589464f92Matt Mlinac - Copyright (C) 2000, 2001 Internet Software Consortium.
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac - Permission to use, copy, modify, and distribute this software for any
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac - purpose with or without fee is hereby granted, provided that the above
1e8ab6896be404f4986bc2f085d42250352ec278Satyen Desai - copyright notice and this permission notice appear in all copies.
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac - THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac - DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinac - INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac - FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac - NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac - WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo</TITLE
34e428fce4ebac1882793cab7c0b0fba2ec57ce2Matt MlinacNAME="GENERATOR"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCONTENT="Modular DocBook HTML Stylesheet Version 1.61
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFENTRY"
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt MlinacBGCOLOR="#FFFFFF"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacTEXT="#000000"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacLINK="#0000FF"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacVLINK="#840084"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacALINK="#0000FF"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo</A
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFNAMEDIV"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo, lwres_freeaddrinfo -- socket address structure to host and service name</DIV
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt MlinacCLASS="REFSYNOPSISDIV"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>Synopsis</H2
ecfa94db8f1cd6fd5c183623979af5fbf2540ea2Matt MlinacCLASS="FUNCSYNOPSIS"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="FUNCSYNOPSISINFO"
ecfa94db8f1cd6fd5c183623979af5fbf2540ea2Matt MlinacCLASS="FUNCDEF"
574a49dbc59353f33a703fe13e26617f449c380dNicholaslwres_getaddrinfo</CODE
574a49dbc59353f33a703fe13e26617f449c380dNicholas>(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res);</CODE
574a49dbc59353f33a703fe13e26617f449c380dNicholasCLASS="FUNCDEF"
574a49dbc59353f33a703fe13e26617f449c380dNicholaslwres_freeaddrinfo</CODE
574a49dbc59353f33a703fe13e26617f449c380dNicholas>(struct addrinfo *ai);</CODE
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>If the operating system does not provide a
44454bd6d54031278b057d47de28d5dfb79059b9Matt Mlinac>struct addrinfo</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacthe following structure is used:
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PROGRAMLISTING"
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinac>struct addrinfo {
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinac int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac int ai_family; /* PF_xxx */
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac int ai_socktype; /* SOCK_xxx */
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac size_t ai_addrlen; /* length of ai_addr */
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac char *ai_canonname; /* canonical name for hostname */
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac struct sockaddr *ai_addr; /* binary address */
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac struct addrinfo *ai_next; /* next structure in linked list */
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFSECT1"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>DESCRIPTION</H2
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="FUNCTION"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo()</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacis used to get a list of IP addresses and port numbers for host
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacThe function is the lightweight resolver's implementation of
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="FUNCTION"
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinac>getaddrinfo()</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacas defined in RFC2133.
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PARAMETER"
2ebc78c44fd8d0db67023f14aea6bd57473262b4Matt MlinacCLASS="PARAMETER"
8bdeab8e5f52c0cdd50e526ace70d8dab5473ad0Matt Mlinacare pointers to null-terminated
8bdeab8e5f52c0cdd50e526ace70d8dab5473ad0Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacis either a host name or a numeric host address string: a dotted decimal
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacIPv4 address or an IPv6 address.
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PARAMETER"
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinacis either a decimal port number or a service name as listed in
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="FILENAME"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacis an optional pointer to a
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinac>struct addrinfo</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacThis structure can be used to provide hints concerning the type of socket
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacthat the caller supports or wishes to use.
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacThe caller can supply the following structure elements in
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="VARIABLELIST"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_family</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>The protocol family that should be used.
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_family</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>PF_UNSPEC</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacit means the caller will accept any protocol family supported by the
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacoperating system.</P
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_socktype</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>denotes the type of socket —
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>SOCK_STREAM</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>SOCK_DGRAM</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>SOCK_RAW</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac— that is wanted.
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_socktype</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacis zero the caller will accept any socket type.</P
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_protocol</TT
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinac>indicates which transport protocol is wanted: IPPROTO_UDP or
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_protocol</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacis zero the caller will accept any protocol.</P
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_flags</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>AI_CANONNAME</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacbit is set, a successful call to
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="FUNCTION"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo()</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacwill return a a null-terminated string containing the canonical name
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacof the specified hostname in
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_canonname</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>addrinfo</SPAN
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinacstructure returned.
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>AI_PASSIVE</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacbit indicates that the returned socket address structure is intended
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacfor used in a call to
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CITEREFENTRY"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFENTRYTITLE"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacIn this case, if the hostname argument is a
42744d7c94bcca6bb48c17c49735988075cdf1ceMatt Mlinacpointer, then the IP address portion of the socket
dfb345c0a57cb22787f1cbceec6127b5bd6b0223Matt Mlinacaddress structure will be set to
2ebc78c44fd8d0db67023f14aea6bd57473262b4Matt Mlinac>INADDR_ANY</SPAN
2ebc78c44fd8d0db67023f14aea6bd57473262b4Matt Mlinacfor an IPv4 address or
2ebc78c44fd8d0db67023f14aea6bd57473262b4Matt Mlinac>IN6ADDR_ANY_INIT</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacfor an IPv6 address.</P
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_flags</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacdoes not set the
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>AI_PASSIVE</SPAN
dfb345c0a57cb22787f1cbceec6127b5bd6b0223Matt Mlinacbit, the returned socket address structure will be ready
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacfor use in a call to
dfb345c0a57cb22787f1cbceec6127b5bd6b0223Matt MlinacCLASS="CITEREFENTRY"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFENTRYTITLE"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>connect</SPAN
574a49dbc59353f33a703fe13e26617f449c380dNicholasfor a connection-oriented protocol or
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CITEREFENTRY"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFENTRYTITLE"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>connect</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CITEREFENTRY"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFENTRYTITLE"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>sendto</SPAN
574a49dbc59353f33a703fe13e26617f449c380dNicholasCLASS="CITEREFENTRY"
574a49dbc59353f33a703fe13e26617f449c380dNicholasCLASS="REFENTRYTITLE"
574a49dbc59353f33a703fe13e26617f449c380dNicholas>sendmsg</SPAN
574a49dbc59353f33a703fe13e26617f449c380dNicholasif a connectionless protocol was chosen.
574a49dbc59353f33a703fe13e26617f449c380dNicholasThe IP address portion of the socket address structure will be
574a49dbc59353f33a703fe13e26617f449c380dNicholasset to the loopback address if
574a49dbc59353f33a703fe13e26617f449c380dNicholasCLASS="PARAMETER"
574a49dbc59353f33a703fe13e26617f449c380dNicholas>hostname</I
574a49dbc59353f33a703fe13e26617f449c380dNicholasCLASS="TYPE"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>AI_PASSIVE</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacis not set in
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_flags</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_flags</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>AI_NUMERICHOST</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacit indicates that
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacshould be treated as a numeric string defining an IPv4 or IPv6 address
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacand no name resolution should be attempted.</P
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>All other elements of the
34e428fce4ebac1882793cab7c0b0fba2ec57ce2Matt Mlinac>struct addrinfo</SPAN
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacmust be zero.</P
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacis treated as if the caller provided a
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>struct addrinfo</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacinitialized to zero with
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_family</TT
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt MlinacCLASS="CONSTANT"
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinac>PF_UNSPEC</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>After a successful call to
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="FUNCTION"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo()</TT
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacis a pointer to a linked list of one or more
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>addrinfo</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>struct addrinfo</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacin this list cn be processed by following
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinacpointer, until a
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacpointer is encountered.
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacThe three members
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinac>ai_family</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_socktype</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinac>ai_protocol</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>addrinfo</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacstructure contain the corresponding arguments for a call to
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CITEREFENTRY"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFENTRYTITLE"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>socket</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>addrinfo</SPAN
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinacstructure in the list, the
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacmember points to a filled-in socket address structure of length
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>ai_addrlen</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>All of the information returned by
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="FUNCTION"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo()</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacis dynamically allocated: the addrinfo structures, and the socket
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinacaddress structures and canonical host name strings pointed to by the
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt MlinacCLASS="CONSTANT"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>addrinfo</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacMemory allocated for the dynamically allocated structures created by
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinaca successful call to
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="FUNCTION"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo()</TT
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt Mlinacis released by
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt MlinacCLASS="FUNCTION"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_freeaddrinfo()</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PARAMETER"
dfb345c0a57cb22787f1cbceec6127b5bd6b0223Matt Mlinacis a pointer to a
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>struct addrinfo</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinaccreated by a call to
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="FUNCTION"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo()</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFSECT1"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacNAME="AEN142"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>RETURN VALUES</H2
7bc91344b9accbc228c43012b27ea327aaaf3662Matt MlinacCLASS="FUNCTION"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo()</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacreturns zero on success or one of the error codes listed in
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CITEREFENTRY"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFENTRYTITLE"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>gai_strerror</SPAN
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinacif an error occurs.
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="PARAMETER"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="FUNCTION"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>lwres_getaddrinfo()</TT
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="ERRORCODE"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>EAI_NONAME</SPAN
b0a00ee1826fd7b9e83a4d279bc372df6a3e5123Matt MlinacCLASS="REFSECT1"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacNAME="AEN154"
6e6cca8e35550f7412d43290db5e137d8576be47Matt Mlinac>SEE ALSO</H2
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CITEREFENTRY"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFENTRYTITLE"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="CITEREFENTRY"
6e6cca8e35550f7412d43290db5e137d8576be47Matt MlinacCLASS="REFENTRYTITLE"