3 #define F(t,n) {t *y = &x.n;}
4 #define C(n) switch(n){case n:;}
16 F(char**, h_addr_list)
44 F(socklen_t, ai_addrlen)
45 F(struct sockaddr*, ai_addr)
46 F(char*, ai_canonname)
47 F(struct addrinfo*, ai_next)
72 {void(*p)(void) = endhostent;}
73 {void(*p)(void) = endnetent;}
74 {void(*p)(void) = endprotoent;}
75 {void(*p)(void) = endservent;}
76 {const char*(*p)(int) = gai_strerror;}
77 {struct hostent*(*p)(void) = gethostent;}
78 {struct netent*(*p)(uint32_t,int) = getnetbyaddr;}
79 {struct netent*(*p)(const char*) = getnetbyname;}
80 {struct netent*(*p)(void) = getnetent;}
81 {struct protoent*(*p)(const char*) = getprotobyname;}
82 {struct protoent*(*p)(int) = getprotobynumber;}
83 {struct protoent*(*p)(void) = getprotoent;}
84 {struct servent*(*p)(const char*,const char*) = getservbyname;}
85 {struct servent*(*p)(int,const char*) = getservbyport;}
86 {struct servent*(*p)(void) = getservent;}
87 {void(*p)(int) = sethostent;}
88 {void(*p)(int) = setnetent;}
89 {void(*p)(int) = setprotoent;}
90 {void(*p)(int) = setservent;}
92 #include <sys/socket.h>
95 {void(*p)(struct addrinfo*) = freeaddrinfo;}
96 {int(*p)(const char*restrict,const char*restrict,const struct addrinfo*restrict,struct addrinfo**restrict) = getaddrinfo;}
97 {int(*p)(const struct sockaddr*restrict,socklen_t,char*restrict,socklen_t,char*restrict,socklen_t,int) = getnameinfo;}