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