Index: trunk/src/libs/xpcom18a4/nsprpub/pr/include/prnetdb.h
===================================================================
--- trunk/src/libs/xpcom18a4/nsprpub/pr/include/prnetdb.h	(revision 101796)
+++ 	(revision )
@@ -1,524 +1,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is the Netscape Portable Runtime (NSPR).
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998-2000
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#ifndef prnetdb_h___
-#define prnetdb_h___
-
-#include "prtypes.h"
-#include "prio.h"
-
-#ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
-#define PR_StringToNetAddr VBoxNsprPR_StringToNetAddr
-#define PR_NetAddrToString VBoxNsprPR_NetAddrToString
-#define PR_GetHostByName VBoxNsprPR_GetHostByName
-#define PR_GetIPNodeByName VBoxNsprPR_GetIPNodeByName
-#define PR_GetHostByAddr VBoxNsprPR_GetHostByAddr
-#define PR_EnumerateHostEnt VBoxNsprPR_EnumerateHostEnt
-#define PR_InitializeNetAddr VBoxNsprPR_InitializeNetAddr
-#define PR_SetNetAddr VBoxNsprPR_SetNetAddr
-#define PR_IsNetAddrType VBoxNsprPR_IsNetAddrType
-#define PR_ConvertIPv4AddrToIPv6 VBoxNsprPR_ConvertIPv4AddrToIPv6
-#define PR_GetProtoByName VBoxNsprPR_GetProtoByName
-#define PR_GetProtoByNumber VBoxNsprPR_GetProtoByNumber
-#define PR_GetAddrInfoByName VBoxNsprPR_GetAddrInfoByName
-#define PR_FreeAddrInfo VBoxNsprPR_FreeAddrInfo
-#define PR_EnumerateAddrInfo VBoxNsprPR_EnumerateAddrInfo
-#define PR_GetCanonNameFromAddrInfo VBoxNsprPR_GetCanonNameFromAddrInfo
-#define PR_htonl VBoxNsprPR_htonl
-#define PR_htonll VBoxNsprPR_htonll
-#define PR_htons VBoxNsprPR_htons
-#define PR_ntohl VBoxNsprPR_ntohl
-#define PR_ntohll VBoxNsprPR_ntohll
-#define PR_ntohs VBoxNsprPR_ntohs
-#endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
-
-PR_BEGIN_EXTERN_C
-
-
-/*
- *********************************************************************
- *  Translate an Internet address to/from a character string
- *********************************************************************
- */
-NSPR_API(PRStatus) PR_StringToNetAddr(
-    const char *string, PRNetAddr *addr);
-
-NSPR_API(PRStatus) PR_NetAddrToString(
-    const PRNetAddr *addr, char *string, PRUint32 size);
-
-/*
-** Structures returned by network data base library.  All addresses are
-** supplied in host order, and returned in network order (suitable for
-** use in system calls).
-*/
-/*
-** Beware that WINSOCK.H defines h_addrtype and h_length as short.
-** Client code does direct struct copies of hostent to PRHostEnt and
-** hence the ifdef.
-*/
-typedef struct PRHostEnt {
-    char *h_name;       /* official name of host */
-    char **h_aliases;   /* alias list */
-#if defined(WIN32) || defined(WIN16)
-    PRInt16 h_addrtype; /* host address type */
-    PRInt16 h_length;   /* length of address */
-#else
-    PRInt32 h_addrtype; /* host address type */
-    PRInt32 h_length;   /* length of address */
-#endif
-    char **h_addr_list; /* list of addresses from name server */
-} PRHostEnt;
-
-/* A safe size to use that will mostly work... */
-#if (defined(AIX) && defined(_THREAD_SAFE)) || defined(OSF1)
-#define PR_NETDB_BUF_SIZE sizeof(struct protoent_data)
-#else
-#define PR_NETDB_BUF_SIZE 1024
-#endif
-
-/***********************************************************************
-** FUNCTION:	
-** DESCRIPTION:	PR_GetHostByName()
-** Lookup a host by name.
-**
-** INPUTS:
-**  char *hostname      Character string defining the host name of interest
-**  char *buf           A scratch buffer for the runtime to return result.
-**                      This buffer is allocated by the caller.
-**  PRIntn bufsize      Number of bytes in 'buf'. A recommnded value to
-**                      use is PR_NETDB_BUF_SIZE.
-** OUTPUTS:
-**  PRHostEnt *hostentry
-**                      This structure is filled in by the runtime if
-**                      the function returns PR_SUCCESS. This structure
-**                      is allocated by the caller.
-** RETURN:
-**  PRStatus            PR_SUCCESS if the lookup succeeds. If it fails
-**                      the result will be PR_FAILURE and the reason
-**                      for the failure can be retrieved by PR_GetError().
-***********************************************************************/
-NSPR_API(PRStatus) PR_GetHostByName(
-    const char *hostname, char *buf, PRIntn bufsize, PRHostEnt *hostentry);
-
-/***********************************************************************
-** FUNCTION:	
-** DESCRIPTION:	PR_GetIPNodeByName()
-** Lookup a host by name. Equivalent to getipnodebyname(AI_DEFAULT)
-** of RFC 2553.
-**
-** INPUTS:
-**  char *hostname      Character string defining the host name of interest
-**  PRUint16 af         Address family (either PR_AF_INET or PR_AF_INET6)
-**  PRIntn flags        Specifies the types of addresses that are searched
-**                      for and the types of addresses that are returned.
-**                      The only supported flag is PR_AI_DEFAULT.
-**  char *buf           A scratch buffer for the runtime to return result.
-**                      This buffer is allocated by the caller.
-**  PRIntn bufsize      Number of bytes in 'buf'. A recommnded value to
-**                      use is PR_NETDB_BUF_SIZE.
-** OUTPUTS:
-**  PRHostEnt *hostentry
-**                      This structure is filled in by the runtime if
-**                      the function returns PR_SUCCESS. This structure
-**                      is allocated by the caller.
-** RETURN:
-**  PRStatus            PR_SUCCESS if the lookup succeeds. If it fails
-**                      the result will be PR_FAILURE and the reason
-**                      for the failure can be retrieved by PR_GetError().
-***********************************************************************/
-
-
-#define PR_AI_ALL         0x08
-#define PR_AI_V4MAPPED    0x10
-#define PR_AI_ADDRCONFIG  0x20
-#define PR_AI_NOCANONNAME 0x8000
-#define PR_AI_DEFAULT     (PR_AI_V4MAPPED | PR_AI_ADDRCONFIG)
-
-NSPR_API(PRStatus) PR_GetIPNodeByName(
-    const char *hostname,
-    PRUint16 af,
-    PRIntn flags,
-    char *buf,
-    PRIntn bufsize,
-    PRHostEnt *hostentry);
-
-/***********************************************************************
-** FUNCTION:	
-** DESCRIPTION:	PR_GetHostByAddr()
-** Lookup a host entry by its network address.
-**
-** INPUTS:
-**  char *hostaddr      IP address of host in question
-**  char *buf           A scratch buffer for the runtime to return result.
-**                      This buffer is allocated by the caller.
-**  PRIntn bufsize      Number of bytes in 'buf'. A recommnded value to
-**                      use is PR_NETDB_BUF_SIZE.
-** OUTPUTS:
-**  PRHostEnt *hostentry
-**                      This structure is filled in by the runtime if
-**                      the function returns PR_SUCCESS. This structure
-**                      is allocated by the caller.
-** RETURN:
-**  PRStatus            PR_SUCCESS if the lookup succeeds. If it fails
-**                      the result will be PR_FAILURE and the reason
-**                      for the failure can be retrieved by PR_GetError().
-***********************************************************************/
-NSPR_API(PRStatus) PR_GetHostByAddr(
-    const PRNetAddr *hostaddr, char *buf, PRIntn bufsize, PRHostEnt *hostentry);
-
-/***********************************************************************
-** FUNCTION:	PR_EnumerateHostEnt()	
-** DESCRIPTION:
-**  A stateless enumerator over a PRHostEnt structure acquired from
-**  PR_GetHostByName() PR_GetHostByAddr() to evaluate the possible
-**  network addresses.
-**
-** INPUTS:
-**  PRIntn  enumIndex   Index of the enumeration. The enumeration starts
-**                      and ends with a value of zero.
-**
-**  PRHostEnt *hostEnt  A pointer to a host entry struct that was
-**                      previously returned by PR_GetHostByName() or
-**                      PR_GetHostByAddr().
-**
-**  PRUint16 port       The port number to be assigned as part of the
-**                      PRNetAddr.
-**
-** OUTPUTS:
-**  PRNetAddr *address  A pointer to an address structure that will be
-**                      filled in by the call to the enumeration if the
-**                      result of the call is greater than zero.
-**
-** RETURN:
-**  PRIntn              The value that should be used for the next call
-**                      of the enumerator ('enumIndex'). The enumeration
-**                      is ended if this value is returned zero.
-**                      If a value of -1 is returned, the enumeration
-**                      has failed. The reason for the failure can be
-**                      retrieved by calling PR_GetError().
-***********************************************************************/
-NSPR_API(PRIntn) PR_EnumerateHostEnt(
-    PRIntn enumIndex, const PRHostEnt *hostEnt, PRUint16 port, PRNetAddr *address);
-
-/***********************************************************************
-** FUNCTION: PR_InitializeNetAddr(), 
-** DESCRIPTION:
-**  Initialize the fields of a PRNetAddr, assigning well known values as
-**  appropriate.
-**
-** INPUTS
-**  PRNetAddrValue val  The value to be assigned to the IP Address portion
-**                      of the network address. This can only specify the
-**                      special well known values that are equivalent to
-**                      INADDR_ANY and INADDR_LOOPBACK.
-**
-**  PRUint16 port       The port number to be assigned in the structure.
-**
-** OUTPUTS:
-**  PRNetAddr *addr     The address to be manipulated.
-**
-** RETURN:
-**  PRStatus            To indicate success or failure. If the latter, the
-**                      reason for the failure can be retrieved by calling
-**                      PR_GetError();
-***********************************************************************/
-typedef enum PRNetAddrValue
-{
-    PR_IpAddrNull,      /* do NOT overwrite the IP address */
-    PR_IpAddrAny,       /* assign logical INADDR_ANY to IP address */
-    PR_IpAddrLoopback,  /* assign logical INADDR_LOOPBACK  */
-    PR_IpAddrV4Mapped   /* IPv4 mapped address */
-} PRNetAddrValue;
-
-NSPR_API(PRStatus) PR_InitializeNetAddr(
-    PRNetAddrValue val, PRUint16 port, PRNetAddr *addr);
-
-/***********************************************************************
-** FUNCTION: PR_SetNetAddr(), 
-** DESCRIPTION:
-**  Set the fields of a PRNetAddr, assigning well known values as
-**  appropriate. This function is similar to PR_InitializeNetAddr
-**  but differs in that the address family is specified.
-**
-** INPUTS
-**  PRNetAddrValue val  The value to be assigned to the IP Address portion
-**                      of the network address. This can only specify the
-**                      special well known values that are equivalent to
-**                      INADDR_ANY and INADDR_LOOPBACK.
-**
-**  PRUint16 af         The address family (either PR_AF_INET or PR_AF_INET6)
-**
-**  PRUint16 port       The port number to be assigned in the structure.
-**
-** OUTPUTS:
-**  PRNetAddr *addr     The address to be manipulated.
-**
-** RETURN:
-**  PRStatus            To indicate success or failure. If the latter, the
-**                      reason for the failure can be retrieved by calling
-**                      PR_GetError();
-***********************************************************************/
-NSPR_API(PRStatus) PR_SetNetAddr(
-    PRNetAddrValue val, PRUint16 af, PRUint16 port, PRNetAddr *addr);
-
-/***********************************************************************
-** FUNCTION:	
-** DESCRIPTION:	PR_IsNetAddrType()
-** Determine if the network address is of the specified type.
-**
-** INPUTS:
-**  const PRNetAddr *addr   A network address.
-**  PRNetAddrValue          The type of network address 
-**
-** RETURN:
-**  PRBool                  PR_TRUE if the network address is of the
-**                          specified type, else PR_FALSE.
-***********************************************************************/
-NSPR_API(PRBool) PR_IsNetAddrType(const PRNetAddr *addr, PRNetAddrValue val);
-
-/***********************************************************************
-** FUNCTION:	
-** DESCRIPTION:	PR_ConvertIPv4AddrToIPv6()
-** Convert an IPv4 addr to an (IPv4-mapped) IPv6 addr
-**
-** INPUTS:
-**  PRUint32 	v4addr		IPv4 address
-**
-** OUTPUTS:
-**  PRIPv6Addr *v6addr      The converted IPv6 address
-**
-** RETURN:
-**  void
-**                       
-***********************************************************************/
-NSPR_API(void) PR_ConvertIPv4AddrToIPv6(PRUint32 v4addr, PRIPv6Addr *v6addr);
-
-/***********************************************************************
-** MACRO:	
-** DESCRIPTION:	PR_NetAddrFamily()
-** Get the 'family' field of a PRNetAddr union.
-**
-** INPUTS:
-**  const PRNetAddr *addr   A network address.
-**
-** RETURN:
-**  PRUint16                The 'family' field of 'addr'.
-***********************************************************************/
-#define PR_NetAddrFamily(addr) ((addr)->raw.family)
-
-/***********************************************************************
-** MACRO:	
-** DESCRIPTION:	PR_NetAddrInetPort()
-** Get the 'port' field of a PRNetAddr union.
-**
-** INPUTS:
-**  const PRNetAddr *addr   A network address.
-**
-** RETURN:
-**  PRUint16                The 'port' field of 'addr'.
-***********************************************************************/
-#define PR_NetAddrInetPort(addr) \
-    ((addr)->raw.family == PR_AF_INET6 ? (addr)->ipv6.port : (addr)->inet.port)
-
-/***********************************************************************
-** FUNCTION:	
-** DESCRIPTION:	PR_GetProtoByName()
-** Lookup a protocol entry based on protocol's name
-**
-** INPUTS:
-**  char *protocolname  Character string of the protocol's name.
-**  char *buf           A scratch buffer for the runtime to return result.
-**                      This buffer is allocated by the caller.
-**  PRIntn bufsize      Number of bytes in 'buf'. A recommnded value to
-**                      use is PR_NETDB_BUF_SIZE.
-** OUTPUTS:
-**  PRHostEnt *PRProtoEnt
-**                      This structure is filled in by the runtime if
-**                      the function returns PR_SUCCESS. This structure
-**                      is allocated by the caller.
-** RETURN:
-**  PRStatus            PR_SUCCESS if the lookup succeeds. If it fails
-**                      the result will be PR_FAILURE and the reason
-**                      for the failure can be retrieved by PR_GetError().
-***********************************************************************/
-
-typedef struct PRProtoEnt {
-    char *p_name;       /* official protocol name */
-    char **p_aliases;   /* alias list */
-#if defined(WIN32) || defined(WIN16)
-    PRInt16 p_num;      /* protocol # */
-#else
-    PRInt32 p_num;      /* protocol # */
-#endif
-} PRProtoEnt;
-
-NSPR_API(PRStatus) PR_GetProtoByName(
-    const char* protocolname, char* buffer, PRInt32 bufsize, PRProtoEnt* result);
-
-/***********************************************************************
-** FUNCTION:	
-** DESCRIPTION:	PR_GetProtoByNumber()
-** Lookup a protocol entry based on protocol's number
-**
-** INPUTS:
-**  PRInt32 protocolnumber
-**                      Number assigned to the protocol.
-**  char *buf           A scratch buffer for the runtime to return result.
-**                      This buffer is allocated by the caller.
-**  PRIntn bufsize      Number of bytes in 'buf'. A recommnded value to
-**                      use is PR_NETDB_BUF_SIZE.
-** OUTPUTS:
-**  PRHostEnt *PRProtoEnt
-**                      This structure is filled in by the runtime if
-**                      the function returns PR_SUCCESS. This structure
-**                      is allocated by the caller.
-** RETURN:
-**  PRStatus            PR_SUCCESS if the lookup succeeds. If it fails
-**                      the result will be PR_FAILURE and the reason
-**                      for the failure can be retrieved by PR_GetError().
-***********************************************************************/
-NSPR_API(PRStatus) PR_GetProtoByNumber(
-    PRInt32 protocolnumber, char* buffer, PRInt32 bufsize, PRProtoEnt* result);
-
-/***********************************************************************
-** FUNCTION:
-** DESCRIPTION: PR_GetAddrInfoByName()
-**  Lookup a host by name. Equivalent to getaddrinfo(host, NULL, ...) of
-**  RFC 3493.
-**
-** INPUTS:
-**  char *hostname      Character string defining the host name of interest
-**  PRUint16 af         May be PR_AF_UNSPEC or PR_AF_INET.
-**  PRIntn flags        May be either PR_AI_ADDRCONFIG or
-**                      PR_AI_ADDRCONFIG | PR_AI_NOCANONNAME. Include
-**                      PR_AI_NOCANONNAME to suppress the determination of
-**                      the canonical name corresponding to hostname.
-** RETURN:
-**  PRAddrInfo*         Handle to a data structure containing the results
-**                      of the host lookup. Use PR_EnumerateAddrInfo to
-**                      inspect the PRNetAddr values stored in this object.
-**                      When no longer needed, this handle must be destroyed
-**                      with a call to PR_FreeAddrInfo.  If a lookup error
-**                      occurs, then NULL will be returned.
-***********************************************************************/
-typedef struct PRAddrInfo PRAddrInfo;
-
-NSPR_API(PRAddrInfo*) PR_GetAddrInfoByName(
-    const char *hostname, PRUint16 af, PRIntn flags);
-
-/***********************************************************************
-** FUNCTION:
-** DESCRIPTION: PR_FreeAddrInfo()
-**  Destroy the PRAddrInfo handle allocated by PR_GetAddrInfoByName().
-**
-** INPUTS:
-**  PRAddrInfo *addrInfo
-**                      The handle resulting from a successful call to
-**                      PR_GetAddrInfoByName().
-** RETURN:
-**  void
-***********************************************************************/
-NSPR_API(void) PR_FreeAddrInfo(PRAddrInfo *addrInfo);
-
-/***********************************************************************
-** FUNCTION:
-** DESCRIPTION: PR_EnumerateAddrInfo()
-**  A stateless enumerator over a PRAddrInfo handle acquired from
-**  PR_GetAddrInfoByName() to inspect the possible network addresses.
-**
-** INPUTS:
-**  void *enumPtr       Index pointer of the enumeration. The enumeration
-**                      starts and ends with a value of NULL.
-**  PRAddrInfo *addrInfo
-**                      The PRAddrInfo handle returned by a successful
-**                      call to PR_GetAddrInfoByName().
-**  PRUint16 port       The port number to be assigned as part of the
-**                      PRNetAddr.
-** OUTPUTS:
-**  PRNetAddr *result   A pointer to an address structure that will be
-**                      filled in by the call to the enumeration if the
-**                      result of the call is greater than zero.
-** RETURN:
-**  void*               The value that should be used for the next call
-**                      of the enumerator ('enumPtr'). The enumeration
-**                      is ended if this value is returned NULL.
-***********************************************************************/
-NSPR_API(void *) PR_EnumerateAddrInfo(
-    void *enumPtr, const PRAddrInfo *addrInfo, PRUint16 port, PRNetAddr *result);
-
-/***********************************************************************
-** FUNCTION:
-** DESCRIPTION: PR_GetCanonNameFromAddrInfo()
-**  Extracts the canonical name of the hostname passed to
-**  PR_GetAddrInfoByName().
-**
-** INPUTS:
-**  PRAddrInfo *addrInfo 
-**                      The PRAddrInfo handle returned by a successful
-**                      call to PR_GetAddrInfoByName().
-** RETURN:
-**  const char *        A const pointer to the canonical hostname stored
-**                      in the given PRAddrInfo handle. This pointer is
-**                      invalidated once the PRAddrInfo handle is destroyed
-**                      by a call to PR_FreeAddrInfo().
-***********************************************************************/
-NSPR_API(const char *) PR_GetCanonNameFromAddrInfo(
-    const PRAddrInfo *addrInfo);
-
-/***********************************************************************
-** FUNCTIONS: PR_ntohs, PR_ntohl, PR_ntohll, PR_htons, PR_htonl, PR_htonll
-**
-** DESCRIPTION: API entries for the common byte ordering routines.
-**
-**      PR_ntohs        16 bit conversion from network to host
-**      PR_ntohl        32 bit conversion from network to host
-**      PR_ntohll       64 bit conversion from network to host
-**      PR_htons        16 bit conversion from host to network
-**      PR_htonl        32 bit conversion from host to network
-**      PR_ntonll       64 bit conversion from host to network
-**
-***********************************************************************/
-NSPR_API(PRUint16) PR_ntohs(PRUint16);
-NSPR_API(PRUint32) PR_ntohl(PRUint32);
-NSPR_API(PRUint64) PR_ntohll(PRUint64);
-NSPR_API(PRUint16) PR_htons(PRUint16);
-NSPR_API(PRUint32) PR_htonl(PRUint32);
-NSPR_API(PRUint64) PR_htonll(PRUint64);
-
-PR_END_EXTERN_C
-
-#endif /* prnetdb_h___ */
