lwres_getaddrinfo.html revision 8a66318e41ed14c5a88130e8c362610e8faa2121
b29285b88f95055e1f399247994067f85882041cTinderbox User - Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - Copyright (C) 2001, 2003 Internet Software Consortium.
689023771c563d8660e45d439a207e06e96de28fMark Andrews - Permission to use, copy, modify, and distribute this software for any
689023771c563d8660e45d439a207e06e96de28fMark Andrews - purpose with or without fee is hereby granted, provided that the above
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - copyright notice and this permission notice appear in all copies.
689023771c563d8660e45d439a207e06e96de28fMark Andrews - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
689023771c563d8660e45d439a207e06e96de28fMark Andrews - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
689023771c563d8660e45d439a207e06e96de28fMark Andrews - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
689023771c563d8660e45d439a207e06e96de28fMark Andrews - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
689023771c563d8660e45d439a207e06e96de28fMark Andrews - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
689023771c563d8660e45d439a207e06e96de28fMark Andrews - PERFORMANCE OF THIS SOFTWARE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<!-- $Id: lwres_getaddrinfo.html,v 1.10 2004/03/05 08:32:20 marka Exp $ -->
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>lwres_getaddrinfo</TITLE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinNAME="GENERATOR"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONTENT="Modular DocBook HTML Stylesheet Version 1.73
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFENTRY"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinBGCOLOR="#FFFFFF"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinTEXT="#000000"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLINK="#0000FF"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinVLINK="#840084"
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox UserALINK="#0000FF"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>lwres_getaddrinfo</A
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFNAMEDIV"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>lwres_getaddrinfo, lwres_freeaddrinfo -- socket address structure to host and service name</DIV
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFSYNOPSISDIV"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>Synopsis</H2
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="FUNCSYNOPSIS"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="FUNCSYNOPSISINFO"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="FUNCDEF"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlwres_getaddrinfo</CODE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res);</CODE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="FUNCDEF"
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox Userlwres_freeaddrinfo</CODE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>(struct addrinfo *ai);</CODE
88a2182a1ad4fc7af07272af6b05b74db7f28e52Tinderbox User>If the operating system does not provide a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>struct addrinfo</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinthe following structure is used:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PROGRAMLISTING"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>struct addrinfo {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein int ai_family; /* PF_xxx */
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein int ai_socktype; /* SOCK_xxx */
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein size_t ai_addrlen; /* length of ai_addr */
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein char *ai_canonname; /* canonical name for hostname */
88a2182a1ad4fc7af07272af6b05b74db7f28e52Tinderbox User struct sockaddr *ai_addr; /* binary address */
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein struct addrinfo *ai_next; /* next structure in linked list */
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFSECT1"
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater>DESCRIPTION</H2
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic UpdaterCLASS="FUNCTION"
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater>lwres_getaddrinfo()</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis used to get a list of IP addresses and port numbers for host
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinThe function is the lightweight resolver's implementation of
4f6469885c3d66367e3f8fb94e1f3c66115990b0Mark AndrewsCLASS="FUNCTION"
4f6469885c3d66367e3f8fb94e1f3c66115990b0Mark Andrews>getaddrinfo()</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinas defined in RFC2133.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PARAMETER"
88a2182a1ad4fc7af07272af6b05b74db7f28e52Tinderbox UserCLASS="PARAMETER"
4f6469885c3d66367e3f8fb94e1f3c66115990b0Mark Andrewsare pointers to null-terminated
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis either a host name or a numeric host address string: a dotted decimal
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinIPv4 address or an IPv6 address.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis either a decimal port number or a service name as listed in
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="FILENAME"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis an optional pointer to a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>struct addrinfo</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinThis structure can be used to provide hints concerning the type of socket
197486d6a95ef23b1b414e96577bad21e57801cdTinderbox Userthat the caller supports or wishes to use.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinThe caller can supply the following structure elements in
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="VARIABLELIST"
68b30890ebd441a6a1ae3fdf71744d07d02cd030Mark AndrewsCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>ai_family</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>The protocol family that should be used.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CONSTANT"
689023771c563d8660e45d439a207e06e96de28fMark Andrews>ai_family</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>PF_UNSPEC</SPAN
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrewsit means the caller will accept any protocol family supported by the
89bc48260b64a8859ae717e9e5bae380e275fef4Mark Andrewsoperating system.</P
79cf9524b15ca65f55fd6913e6cf01b5581c588aAutomatic UpdaterCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>ai_socktype</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>denotes the type of socket —
538a83db7509d598da95a93bd7b74ef3112123a4Mark Andrews>SOCK_STREAM</SPAN
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews>SOCK_DGRAM</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>SOCK_RAW</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein— that is wanted.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CONSTANT"
3b4098640dd85040270f39b9a5ee5e22de99d3d6Mark Andrews>ai_socktype</TT
3b4098640dd85040270f39b9a5ee5e22de99d3d6Mark Andrewsis zero the caller will accept any socket type.</P
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CONSTANT"
f051d76c87e055c6ea3879e0c97a76609df915ccMark Andrews>ai_protocol</TT
65ad89971ee9973074cd11c207af92bf5440df01Automatic Updater>indicates which transport protocol is wanted: IPPROTO_UDP or
65ad89971ee9973074cd11c207af92bf5440df01Automatic UpdaterCLASS="CONSTANT"
65ad89971ee9973074cd11c207af92bf5440df01Automatic Updater>ai_protocol</TT
65ad89971ee9973074cd11c207af92bf5440df01Automatic Updateris zero the caller will accept any protocol.</P
1586d8cbac5d73031716561386f60758c6c332d5Mark AndrewsCLASS="CONSTANT"
1586d8cbac5d73031716561386f60758c6c332d5Mark Andrews>ai_flags</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>AI_CANONNAME</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinbit is set, a successful call to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="FUNCTION"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>lwres_getaddrinfo()</TT
083a5588a3488b6335ee7bafa505d00644c7c58dMark Andrewswill return a null-terminated string containing the canonical name
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic Updaterof the specified hostname in
43b94483957d3168796a816ed86cf097518817dcTinderbox UserCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>ai_canonname</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>addrinfo</SPAN
d9c707589ade5d69fb59b6837555adc4cd24d34fAutomatic Updaterstructure returned.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>AI_PASSIVE</SPAN
689023771c563d8660e45d439a207e06e96de28fMark Andrewsbit indicates that the returned socket address structure is intended
4f6469885c3d66367e3f8fb94e1f3c66115990b0Mark Andrewsfor used in a call to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CITEREFENTRY"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFENTRYTITLE"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinIn this case, if the hostname argument is a
aeb7938001b22e811a910e1b36cdf452f9193865Automatic Updaterpointer, then the IP address portion of the socket
aeb7938001b22e811a910e1b36cdf452f9193865Automatic Updateraddress structure will be set to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>INADDR_ANY</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinfor an IPv4 address or
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>IN6ADDR_ANY_INIT</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinfor an IPv6 address.</P
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>ai_flags</TT
b29285b88f95055e1f399247994067f85882041cTinderbox Userdoes not set the
3b4098640dd85040270f39b9a5ee5e22de99d3d6Mark Andrews>AI_PASSIVE</SPAN
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updaterbit, the returned socket address structure will be ready
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updaterfor use in a call to
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic UpdaterCLASS="CITEREFENTRY"
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic UpdaterCLASS="REFENTRYTITLE"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinfor a connection-oriented protocol or
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CITEREFENTRY"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFENTRYTITLE"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>connect</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CITEREFENTRY"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFENTRYTITLE"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>sendto</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CITEREFENTRY"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFENTRYTITLE"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>sendmsg</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinif a connectionless protocol was chosen.
689023771c563d8660e45d439a207e06e96de28fMark AndrewsThe IP address portion of the socket address structure will be
4f6469885c3d66367e3f8fb94e1f3c66115990b0Mark Andrewsset to the loopback address if
689023771c563d8660e45d439a207e06e96de28fMark AndrewsCLASS="PARAMETER"
68b30890ebd441a6a1ae3fdf71744d07d02cd030Mark Andrews>AI_PASSIVE</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis not set in
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>ai_flags</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>ai_flags</TT
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews>AI_NUMERICHOST</SPAN
89bc48260b64a8859ae717e9e5bae380e275fef4Mark Andrewsit indicates that
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinshould be treated as a numeric string defining an IPv4 or IPv6 address
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinand no name resolution should be attempted.</P
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>All other elements of the <SPAN
3b4098640dd85040270f39b9a5ee5e22de99d3d6Mark Andrews>struct addrinfo</SPAN
22c71c7b86fa57a19f7df0da4222eb8593e6ad12Mark AndrewsCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein> must be zero.</P
689023771c563d8660e45d439a207e06e96de28fMark AndrewsCLASS="PARAMETER"
f051d76c87e055c6ea3879e0c97a76609df915ccMark Andrews> is treated as if
36da16fa31fa2a582afe67010ba449a57177fd2fAutomatic Updaterthe caller provided a <SPAN
3b4098640dd85040270f39b9a5ee5e22de99d3d6Mark Andrews>struct addrinfo</SPAN
65ad89971ee9973074cd11c207af92bf5440df01Automatic Updater> initialized to zero
65ad89971ee9973074cd11c207af92bf5440df01Automatic UpdaterCLASS="CONSTANT"
65ad89971ee9973074cd11c207af92bf5440df01Automatic UpdaterCLASS="CONSTANT"
65ad89971ee9973074cd11c207af92bf5440df01Automatic Updater>After a successful call to
1586d8cbac5d73031716561386f60758c6c332d5Mark AndrewsCLASS="FUNCTION"
1586d8cbac5d73031716561386f60758c6c332d5Mark Andrews>lwres_getaddrinfo()</TT
1586d8cbac5d73031716561386f60758c6c332d5Mark AndrewsCLASS="PARAMETER"
68b30890ebd441a6a1ae3fdf71744d07d02cd030Mark Andrewsis a pointer to a linked list of one or more
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>addrinfo</SPAN
43b94483957d3168796a816ed86cf097518817dcTinderbox User>struct addrinfo</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinin this list cn be processed by following
7526edc7677371c366232de5f39a678b7dcda747Mark AndrewsCLASS="CONSTANT"
d9c707589ade5d69fb59b6837555adc4cd24d34fAutomatic Updaterpointer, until a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinpointer is encountered.
689023771c563d8660e45d439a207e06e96de28fMark AndrewsThe three members
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>ai_family</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>ai_socktype</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>ai_protocol</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>addrinfo</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinstructure contain the corresponding arguments for a call to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CITEREFENTRY"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFENTRYTITLE"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>socket</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>addrinfo</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinstructure in the list, the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmember points to a filled-in socket address structure of length
d9184858dd5d7677050a813d444c281c56f697aaTinderbox UserCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>ai_addrlen</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>All of the information returned by
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="FUNCTION"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>lwres_getaddrinfo()</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis dynamically allocated: the addrinfo structures, and the socket
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinaddress structures and canonical host name strings pointed to by the
689023771c563d8660e45d439a207e06e96de28fMark AndrewsCLASS="CONSTANT"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>addrinfo</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMemory allocated for the dynamically allocated structures created by
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrewsa successful call to
3b4098640dd85040270f39b9a5ee5e22de99d3d6Mark AndrewsCLASS="FUNCTION"
3b4098640dd85040270f39b9a5ee5e22de99d3d6Mark Andrews>lwres_getaddrinfo()</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis released by
3b4098640dd85040270f39b9a5ee5e22de99d3d6Mark AndrewsCLASS="FUNCTION"
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic Updater>lwres_freeaddrinfo()</TT
68b30890ebd441a6a1ae3fdf71744d07d02cd030Mark AndrewsCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis a pointer to a
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater>struct addrinfo</SPAN
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updatercreated by a call to
083a5588a3488b6335ee7bafa505d00644c7c58dMark AndrewsCLASS="FUNCTION"
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic Updater>lwres_getaddrinfo()</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFSECT1"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinNAME="AEN142"
d9c707589ade5d69fb59b6837555adc4cd24d34fAutomatic Updater>RETURN VALUES</H2
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="FUNCTION"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>lwres_getaddrinfo()</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinreturns zero on success or one of the error codes listed in
689023771c563d8660e45d439a207e06e96de28fMark AndrewsCLASS="CITEREFENTRY"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFENTRYTITLE"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>gai_strerror</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinif an error occurs.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="PARAMETER"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="FUNCTION"
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater>lwres_getaddrinfo()</TT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="ERRORCODE"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>EAI_NONAME</SPAN
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="REFSECT1"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinNAME="AEN154"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein>SEE ALSO</H2
d9184858dd5d7677050a813d444c281c56f697aaTinderbox UserCLASS="CITEREFENTRY"
1224c3b69b3d18f7127aa042644936af25a2d679Mark AndrewsCLASS="REFENTRYTITLE"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLASS="CITEREFENTRY"