ga_echeck.c
来自「《unix网络编程第二卷》中的源代码」· C语言 代码 · 共 55 行
C
55 行
#include "gai_hdr.h"/* * Basic error checking of flags, family, socket type, and protocol. *//* include ga_echeck */intga_echeck(const char *hostname, const char *servname, int flags, int family, int socktype, int protocol){ if (flags & ~(AI_PASSIVE | AI_CANONNAME)) return(EAI_BADFLAGS); /* unknown flag bits */ if (hostname == NULL || hostname[0] == '\0') { if (servname == NULL || servname[0] == '\0') return(EAI_NONAME); /* host or service must be specified */ } switch(family) { case AF_UNSPEC: break;#ifdef IPv4 case AF_INET: if (socktype != 0 && (socktype != SOCK_STREAM && socktype != SOCK_DGRAM && socktype != SOCK_RAW)) return(EAI_SOCKTYPE); /* invalid socket type */ break;#endif#ifdef IPv6 case AF_INET6: if (socktype != 0 && (socktype != SOCK_STREAM && socktype != SOCK_DGRAM && socktype != SOCK_RAW)) return(EAI_SOCKTYPE); /* invalid socket type */ break;#endif#ifdef UNIXdomain case AF_LOCAL: if (socktype != 0 && (socktype != SOCK_STREAM && socktype != SOCK_DGRAM)) return(EAI_SOCKTYPE); /* invalid socket type */ break;#endif default: return(EAI_FAMILY); /* unknown protocol family */ } return(0);}/* end ga_echeck */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?