1570af302Sopenharmony_ci#include <netdb.h> 2570af302Sopenharmony_ci#define T(t) (t*)0; 3570af302Sopenharmony_ci#define F(t,n) {t *y = &x.n;} 4570af302Sopenharmony_ci#define C(n) switch(n){case n:;} 5570af302Sopenharmony_cistatic void f() 6570af302Sopenharmony_ci{ 7570af302Sopenharmony_ciT(uint32_t) 8570af302Sopenharmony_ciT(socklen_t) 9570af302Sopenharmony_ciC(IPPORT_RESERVED) 10570af302Sopenharmony_ci{ 11570af302Sopenharmony_cistruct hostent x; 12570af302Sopenharmony_ciF(char*, h_name) 13570af302Sopenharmony_ciF(char**, h_aliases) 14570af302Sopenharmony_ciF(int, h_addrtype) 15570af302Sopenharmony_ciF(int, h_length) 16570af302Sopenharmony_ciF(char**, h_addr_list) 17570af302Sopenharmony_ci} 18570af302Sopenharmony_ci{ 19570af302Sopenharmony_cistruct netent x; 20570af302Sopenharmony_ciF(char*, n_name) 21570af302Sopenharmony_ciF(char**, n_aliases) 22570af302Sopenharmony_ciF(int, n_addrtype) 23570af302Sopenharmony_ciF(uint32_t, n_net) 24570af302Sopenharmony_ci} 25570af302Sopenharmony_ci{ 26570af302Sopenharmony_cistruct protoent x; 27570af302Sopenharmony_ciF(char*, p_name) 28570af302Sopenharmony_ciF(char**, p_aliases) 29570af302Sopenharmony_ciF(int, p_proto) 30570af302Sopenharmony_ci} 31570af302Sopenharmony_ci{ 32570af302Sopenharmony_cistruct servent x; 33570af302Sopenharmony_ciF(char*, s_name) 34570af302Sopenharmony_ciF(char**, s_aliases) 35570af302Sopenharmony_ciF(int, s_port) 36570af302Sopenharmony_ciF(char*, s_proto) 37570af302Sopenharmony_ci} 38570af302Sopenharmony_ci{ 39570af302Sopenharmony_cistruct addrinfo x; 40570af302Sopenharmony_ciF(int, ai_flags) 41570af302Sopenharmony_ciF(int, ai_family) 42570af302Sopenharmony_ciF(int, ai_socktype) 43570af302Sopenharmony_ciF(int, ai_protocol) 44570af302Sopenharmony_ciF(socklen_t, ai_addrlen) 45570af302Sopenharmony_ciF(struct sockaddr*, ai_addr) 46570af302Sopenharmony_ciF(char*, ai_canonname) 47570af302Sopenharmony_ciF(struct addrinfo*, ai_next) 48570af302Sopenharmony_ci} 49570af302Sopenharmony_ciC(AI_PASSIVE) 50570af302Sopenharmony_ciC(AI_CANONNAME) 51570af302Sopenharmony_ciC(AI_NUMERICHOST) 52570af302Sopenharmony_ciC(AI_NUMERICSERV) 53570af302Sopenharmony_ciC(AI_V4MAPPED) 54570af302Sopenharmony_ciC(AI_ALL) 55570af302Sopenharmony_ciC(AI_ADDRCONFIG) 56570af302Sopenharmony_ciC(NI_NOFQDN) 57570af302Sopenharmony_ciC(NI_NUMERICHOST) 58570af302Sopenharmony_ciC(NI_NAMEREQD) 59570af302Sopenharmony_ciC(NI_NUMERICSERV) 60570af302Sopenharmony_ciC(NI_NUMERICSCOPE) 61570af302Sopenharmony_ciC(NI_DGRAM) 62570af302Sopenharmony_ciC(EAI_AGAIN) 63570af302Sopenharmony_ciC(EAI_BADFLAGS) 64570af302Sopenharmony_ciC(EAI_FAIL) 65570af302Sopenharmony_ciC(EAI_FAMILY) 66570af302Sopenharmony_ciC(EAI_MEMORY) 67570af302Sopenharmony_ciC(EAI_NONAME) 68570af302Sopenharmony_ciC(EAI_SERVICE) 69570af302Sopenharmony_ciC(EAI_SOCKTYPE) 70570af302Sopenharmony_ciC(EAI_SYSTEM) 71570af302Sopenharmony_ciC(EAI_OVERFLOW) 72570af302Sopenharmony_ci{void(*p)(void) = endhostent;} 73570af302Sopenharmony_ci{void(*p)(void) = endnetent;} 74570af302Sopenharmony_ci{void(*p)(void) = endprotoent;} 75570af302Sopenharmony_ci{void(*p)(void) = endservent;} 76570af302Sopenharmony_ci{const char*(*p)(int) = gai_strerror;} 77570af302Sopenharmony_ci{struct hostent*(*p)(void) = gethostent;} 78570af302Sopenharmony_ci{struct netent*(*p)(uint32_t,int) = getnetbyaddr;} 79570af302Sopenharmony_ci{struct netent*(*p)(const char*) = getnetbyname;} 80570af302Sopenharmony_ci{struct netent*(*p)(void) = getnetent;} 81570af302Sopenharmony_ci{struct protoent*(*p)(const char*) = getprotobyname;} 82570af302Sopenharmony_ci{struct protoent*(*p)(int) = getprotobynumber;} 83570af302Sopenharmony_ci{struct protoent*(*p)(void) = getprotoent;} 84570af302Sopenharmony_ci{struct servent*(*p)(const char*,const char*) = getservbyname;} 85570af302Sopenharmony_ci{struct servent*(*p)(int,const char*) = getservbyport;} 86570af302Sopenharmony_ci{struct servent*(*p)(void) = getservent;} 87570af302Sopenharmony_ci{void(*p)(int) = sethostent;} 88570af302Sopenharmony_ci{void(*p)(int) = setnetent;} 89570af302Sopenharmony_ci{void(*p)(int) = setprotoent;} 90570af302Sopenharmony_ci{void(*p)(int) = setservent;} 91570af302Sopenharmony_ci} 92570af302Sopenharmony_ci#include <sys/socket.h> 93570af302Sopenharmony_cistatic void g() 94570af302Sopenharmony_ci{ 95570af302Sopenharmony_ci{void(*p)(struct addrinfo*) = freeaddrinfo;} 96570af302Sopenharmony_ci{int(*p)(const char*restrict,const char*restrict,const struct addrinfo*restrict,struct addrinfo**restrict) = getaddrinfo;} 97570af302Sopenharmony_ci{int(*p)(const struct sockaddr*restrict,socklen_t,char*restrict,socklen_t,char*restrict,socklen_t,int) = getnameinfo;} 98570af302Sopenharmony_ci} 99