lwres_getaddrinfo.html revision 8de7014e56565605a51898a2a33a8b08fd3f1e57
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - Copyright (C) 2000, 2001 Internet Software Consortium.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - Permission to use, copy, modify, and distribute this software for any
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - purpose with or without fee is hereby granted, provided that the above
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - copyright notice and this permission notice appear in all copies.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews - WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_getaddrinfo</TITLE
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsNAME="GENERATOR"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCONTENT="Modular DocBook HTML Stylesheet Version 1.61
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsBGCOLOR="#FFFFFF"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsTEXT="#000000"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsLINK="#0000FF"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsVLINK="#840084"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsALINK="#0000FF"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_getaddrinfo</A
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFNAMEDIV"
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt>lwres_getaddrinfo, lwres_freeaddrinfo -- socket address structure to host and service name</DIV
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFSYNOPSISDIV"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>Synopsis</H2
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCSYNOPSIS"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCSYNOPSISINFO"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCDEF"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewslwres_getaddrinfo</CODE
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res);</CODE
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCDEF"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewslwres_freeaddrinfo</CODE
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>(struct addrinfo *ai);</CODE
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>If the operating system does not provide a
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>struct addrinfo</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsthe following structure is used:
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PROGRAMLISTING"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>struct addrinfo {
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews int ai_family; /* PF_xxx */
1059bc2e42e8214f8b73d3b4cd181d8394a94a6aFrancis Dupont int ai_socktype; /* SOCK_xxx */
1059bc2e42e8214f8b73d3b4cd181d8394a94a6aFrancis Dupont int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews size_t ai_addrlen; /* length of ai_addr */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews char *ai_canonname; /* canonical name for hostname */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews struct sockaddr *ai_addr; /* binary address */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews struct addrinfo *ai_next; /* next structure in linked list */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFSECT1"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>DESCRIPTION</H2
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCTION"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_getaddrinfo()</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsis used to get a list of IP addresses and port numbers for host
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsThe function is the lightweight resolver's implementation of
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCTION"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>getaddrinfo()</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsas defined in RFC2133.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsare pointers to null-terminated
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsis either a host name or a numeric host address string: a dotted decimal
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsIPv4 address or an IPv6 address.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Huntis either a decimal port number or a service name as listed in
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan HuntCLASS="FILENAME"
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan HuntCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsis an optional pointer to a
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>struct addrinfo</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsThis structure can be used to provide hints concerning the type of socket
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsthat the caller supports or wishes to use.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsThe caller can supply the following structure elements in
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="VARIABLELIST"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_family</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>The protocol family that should be used.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_family</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>PF_UNSPEC</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsit means the caller will accept any protocol family supported by the
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsoperating system.</P
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_socktype</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>denotes the type of socket —
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>SOCK_STREAM</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>SOCK_DGRAM</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>SOCK_RAW</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews— that is wanted.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_socktype</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsis zero the caller will accept any socket type.</P
1059bc2e42e8214f8b73d3b4cd181d8394a94a6aFrancis DupontCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_protocol</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>indicates which transport protocol is wanted: IPPROTO_UDP or
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_protocol</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsis zero the caller will accept any protocol.</P
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_flags</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>AI_CANONNAME</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsbit is set, a successful call to
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCTION"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_getaddrinfo()</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewswill return a a null-terminated string containing the canonical name
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsof the specified hostname in
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_canonname</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>addrinfo</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsstructure returned.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>AI_PASSIVE</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsbit indicates that the returned socket address structure is intended
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsfor used in a call to
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsIn this case, if the hostname argument is a
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Huntpointer, then the IP address portion of the socket
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsaddress structure will be set to
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>INADDR_ANY</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsfor an IPv4 address or
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Hunt>IN6ADDR_ANY_INIT</SPAN
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Huntfor an IPv6 address.</P
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan HuntCLASS="CONSTANT"
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Hunt>ai_flags</TT
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Huntdoes not set the
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>AI_PASSIVE</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsbit, the returned socket address structure will be ready
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsfor use in a call to
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>connect</SPAN
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Huntfor a connection-oriented protocol or
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>connect</SPAN
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan HuntCLASS="CITEREFENTRY"
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan HuntCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>sendto</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
fc63119c8b7aa8827fad9e3e45e50c69bc2630e8Francis DupontCLASS="REFENTRYTITLE"
343aeac7176d28c4a1b9d246b1f7311b4cd5da7dFrancis Dupont>sendmsg</SPAN
12bf5d4796505b4c20680531da96a31e6c2c1144Evan Huntif a connectionless protocol was chosen.
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan HuntThe IP address portion of the socket address structure will be
84f95ddb2572641022619950a211aff49e331c98Mukund Sivaramanset to the loopback address if
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Hunt>AI_PASSIVE</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsis not set in
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_flags</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>AI_NUMERICHOST</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsit indicates that
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
343aeac7176d28c4a1b9d246b1f7311b4cd5da7dFrancis Dupontshould be treated as a numeric string defining an IPv4 or IPv6 address
343aeac7176d28c4a1b9d246b1f7311b4cd5da7dFrancis Dupontand no name resolution should be attempted.</P
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>All other elements of the
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>struct addrinfo</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsmust be zero.</P
b7c6138405d62bae04bd4d065d4a2057ff125707Francis DupontCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsis treated as if the caller provided a
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>struct addrinfo</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsinitialized to zero with
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_family</TT
ba751492fcc4f161a18b983d4f018a1a52938cb9Evan HuntCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>PF_UNSPEC</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>After a successful call to
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCTION"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_getaddrinfo()</TT
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan HuntCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsis a pointer to a linked list of one or more
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>addrinfo</SPAN
343aeac7176d28c4a1b9d246b1f7311b4cd5da7dFrancis Dupont>struct addrinfo</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsin this list cn be processed by following
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewspointer, until a
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewspointer is encountered.
343aeac7176d28c4a1b9d246b1f7311b4cd5da7dFrancis DupontThe three members
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_family</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_socktype</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_protocol</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>addrinfo</SPAN
343aeac7176d28c4a1b9d246b1f7311b4cd5da7dFrancis Dupontstructure contain the corresponding arguments for a call to
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>socket</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>addrinfo</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsstructure in the list, the
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsmember points to a filled-in socket address structure of length
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>ai_addrlen</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>All of the information returned by
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCTION"
ba751492fcc4f161a18b983d4f018a1a52938cb9Evan Hunt>lwres_getaddrinfo()</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsis dynamically allocated: the addrinfo structures, and the socket
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsaddress structures and canonical host name strings pointed to by the
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CONSTANT"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsMemory allocated for the dynamically allocated structures created by
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsa successful call to
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan HuntCLASS="FUNCTION"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_getaddrinfo()</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsis released by
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan HuntCLASS="FUNCTION"
343aeac7176d28c4a1b9d246b1f7311b4cd5da7dFrancis Dupont>lwres_freeaddrinfo()</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
343aeac7176d28c4a1b9d246b1f7311b4cd5da7dFrancis Dupontis a pointer to a
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>struct addrinfo</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewscreated by a call to
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCTION"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_getaddrinfo()</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFSECT1"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsNAME="AEN142"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>RETURN VALUES</H2
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCTION"
84f95ddb2572641022619950a211aff49e331c98Mukund Sivaraman>lwres_getaddrinfo()</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsreturns zero on success or one of the error codes listed in
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>gai_strerror</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrewsif an error occurs.
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan HuntCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="PARAMETER"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="FUNCTION"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_getaddrinfo()</TT
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="ERRORCODE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>EAI_NONAME</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFSECT1"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsNAME="AEN154"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>SEE ALSO</H2
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_getaddrinfo</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_freeaddrinfo</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>lwres_gai_strerror</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>RFC2133</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews>getservbyname</SPAN
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="CITEREFENTRY"
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark AndrewsCLASS="REFENTRYTITLE"
b7c6138405d62bae04bd4d065d4a2057ff125707Francis DupontCLASS="CITEREFENTRY"
b7c6138405d62bae04bd4d065d4a2057ff125707Francis DupontCLASS="REFENTRYTITLE"
b7c6138405d62bae04bd4d065d4a2057ff125707Francis Dupont>connect</SPAN
b7c6138405d62bae04bd4d065d4a2057ff125707Francis DupontCLASS="CITEREFENTRY"
b7c6138405d62bae04bd4d065d4a2057ff125707Francis DupontCLASS="REFENTRYTITLE"
b7c6138405d62bae04bd4d065d4a2057ff125707Francis DupontCLASS="CITEREFENTRY"
b7c6138405d62bae04bd4d065d4a2057ff125707Francis DupontCLASS="REFENTRYTITLE"
b7c6138405d62bae04bd4d065d4a2057ff125707Francis Dupont>sendmsg</SPAN
b7c6138405d62bae04bd4d065d4a2057ff125707Francis DupontCLASS="CITEREFENTRY"
b7c6138405d62bae04bd4d065d4a2057ff125707Francis DupontCLASS="REFENTRYTITLE"