<!-- - Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") - Copyright (C) 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 ISC DISCLAIMS ALL WARRANTIES WITH - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS. IN NO EVENT SHALL ISC 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. --> <!-- $Id: lwres_getnameinfo.html,v 1.5.2.1.4.2 2004/08/22 23:39:04 marka Exp $ --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >lwres_getnameinfo</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><H1 ><A NAME="AEN1" ></A >lwres_getnameinfo</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" ><P ></P ><A NAME="AEN12" ></A ><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. <CODE CLASS="FUNCTION" >lwres_getnameinfo()</CODE > returns the hostname for the <SPAN CLASS="TYPE" >struct sockaddr</SPAN > <VAR CLASS="PARAMETER" >sa</VAR > which is <VAR CLASS="PARAMETER" >salen</VAR > bytes long. The hostname is of length <VAR CLASS="PARAMETER" >hostlen</VAR > and is returned via <VAR CLASS="PARAMETER" >*host.</VAR > The maximum length of the hostname is 1025 bytes: <CODE CLASS="CONSTANT" >NI_MAXHOST</CODE >.</P ><P > The name of the service associated with the port number in <VAR CLASS="PARAMETER" >sa</VAR > is returned in <VAR CLASS="PARAMETER" >*serv.</VAR > It is <VAR CLASS="PARAMETER" >servlen</VAR > bytes long. The maximum length of the service name is <CODE CLASS="CONSTANT" >NI_MAXSERV</CODE > - 32 bytes.</P ><P > The <VAR CLASS="PARAMETER" >flags</VAR > argument sets the following bits: <P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT ><CODE CLASS="CONSTANT" >NI_NOFQDN</CODE ></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 ><CODE CLASS="CONSTANT" >NI_NUMERICHOST</CODE ></DT ><DD ><P >Return the address in numeric form, as if calling inet_ntop(), instead of a host name.</P ></DD ><DT ><CODE CLASS="CONSTANT" >NI_NAMEREQD</CODE ></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 ><CODE CLASS="CONSTANT" >NI_NUMERICSERV</CODE ></DT ><DD ><P >The service name is returned as a digit string representing the port number.</P ></DD ><DT ><CODE CLASS="CONSTANT" >NI_DGRAM</CODE ></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 ><CODE CLASS="FUNCTION" >lwres_getnameinfo()</CODE > 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 >