<!-- - Copyright (C) 2000, 2001 Internet Software Consortium. - - Permission to use, copy, modify, and distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM - DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL - INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING - FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, - NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --> <HTML ><HEAD ><TITLE >lwres_getnameinfo</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.73 "></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><H1 ><A NAME="AEN1" >lwres_getnameinfo</A ></H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN8" ></A ><H2 >Name</H2 >lwres_getnameinfo -- lightweight resolver socket address structure to hostname and service name</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN11" ></A ><H2 >Synopsis</H2 ><DIV CLASS="FUNCSYNOPSIS" ><A NAME="AEN12" ></A ><P ></P ><PRE CLASS="FUNCSYNOPSISINFO" >#include <lwres/netdb.h></PRE ><P ><CODE ><CODE CLASS="FUNCDEF" >int lwres_getnameinfo</CODE >(const struct sockaddr *sa, size_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);</CODE ></P ><P ></P ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN24" ></A ><H2 >DESCRIPTION</H2 ><P > This function is equivalent to the <SPAN CLASS="CITEREFENTRY" ><SPAN CLASS="REFENTRYTITLE" >getnameinfo</SPAN >(3)</SPAN > function defined in RFC2133. <TT CLASS="FUNCTION" >lwres_getnameinfo()</TT > returns the hostname for the <SPAN CLASS="TYPE" >struct sockaddr</SPAN > <TT CLASS="PARAMETER" ><I >sa</I ></TT > which is <TT CLASS="PARAMETER" ><I >salen</I ></TT > bytes long. The hostname is of length <TT CLASS="PARAMETER" ><I >hostlen</I ></TT > and is returned via <TT CLASS="PARAMETER" ><I >*host.</I ></TT > The maximum length of the hostname is 1025 bytes: <TT CLASS="CONSTANT" >NI_MAXHOST</TT >.</P ><P > The name of the service associated with the port number in <TT CLASS="PARAMETER" ><I >sa</I ></TT > is returned in <TT CLASS="PARAMETER" ><I >*serv.</I ></TT > It is <TT CLASS="PARAMETER" ><I >servlen</I ></TT > bytes long. The maximum length of the service name is <TT CLASS="CONSTANT" >NI_MAXSERV</TT > - 32 bytes.</P ><P > The <TT CLASS="PARAMETER" ><I >flags</I ></TT > argument sets the following bits: <P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT ><TT CLASS="CONSTANT" >NI_NOFQDN</TT ></DT ><DD ><P >A fully qualified domain name is not required for local hosts. The local part of the fully qualified domain name is returned instead.</P ></DD ><DT ><TT CLASS="CONSTANT" >NI_NUMERICHOST</TT ></DT ><DD ><P >Return the address in numeric form, as if calling inet_ntop(), instead of a host name.</P ></DD ><DT ><TT CLASS="CONSTANT" >NI_NAMEREQD</TT ></DT ><DD ><P >A name is required. If the hostname cannot be found in the DNS and this flag is set, a non-zero error code is returned. If the hostname is not found and the flag is not set, the address is returned in numeric form.</P ></DD ><DT ><TT CLASS="CONSTANT" >NI_NUMERICSERV</TT ></DT ><DD ><P >The service name is returned as a digit string representing the port number.</P ></DD ><DT ><TT CLASS="CONSTANT" >NI_DGRAM</TT ></DT ><DD ><P >Specifies that the service being looked up is a datagram service, and causes getservbyport() to be called with a second argument of "udp" instead of its default of "tcp". This is required for the few ports (512-514) that have different services for UDP and TCP.</P ></DD ></DL ></DIV ></P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN70" ></A ><H2 >RETURN VALUES</H2 ><P ><TT CLASS="FUNCTION" >lwres_getnameinfo()</TT > returns 0 on success or a non-zero error code if an error occurs.</P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN74" ></A ><H2 >SEE ALSO</H2 ><P ><SPAN CLASS="CITEREFENTRY" ><SPAN CLASS="REFENTRYTITLE" >RFC2133</SPAN ></SPAN >, <SPAN CLASS="CITEREFENTRY" ><SPAN CLASS="REFENTRYTITLE" >getservbyport</SPAN >(3)</SPAN >, <SPAN CLASS="CITEREFENTRY" ><SPAN CLASS="REFENTRYTITLE" >lwres</SPAN >(3)</SPAN >, <SPAN CLASS="CITEREFENTRY" ><SPAN CLASS="REFENTRYTITLE" >lwres_getnameinfo</SPAN >(3)</SPAN >, <SPAN CLASS="CITEREFENTRY" ><SPAN CLASS="REFENTRYTITLE" >lwres_getnamebyaddr</SPAN >(3)</SPAN >. <SPAN CLASS="CITEREFENTRY" ><SPAN CLASS="REFENTRYTITLE" >lwres_net_ntop</SPAN >(3)</SPAN >.</P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN94" ></A ><H2 >BUGS</H2 ><P >RFC2133 fails to define what the nonzero return values of <SPAN CLASS="CITEREFENTRY" ><SPAN CLASS="REFENTRYTITLE" >getnameinfo</SPAN >(3)</SPAN > are.</P ></DIV ></BODY ></HTML >