⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prnetdb.h

📁 Netscape NSPR库源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/************************************************************************* 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);/************************************************************************* 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___ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -