1#include <netinet/in.h>
2#define T(t) (t*)0;
3#define F(t,n) {t *y = &x.n;}
4#define C(n) switch(n){case n:;}
5#define I(t,e) {t x[sizeof(t)==sizeof(e)] = {e};}
6static void f()
7{
8T(in_port_t)
9T(in_addr_t)
10T(sa_family_t)
11T(uint8_t)
12T(uint32_t)
13{
14struct in_addr x;
15F(in_addr_t, s_addr)
16}
17{
18struct sockaddr_in x;
19F(sa_family_t, sin_family)
20F(in_port_t, sin_port)
21F(struct in_addr, sin_addr)
22}
23{
24struct in6_addr x;
25F(uint8_t, s6_addr[16])
26}
27{
28struct sockaddr_in6 x;
29F(sa_family_t, sin6_family)
30F(in_port_t, sin6_port)
31F(uint32_t, sin6_flowinfo)
32F(struct in6_addr, sin6_addr)
33F(uint32_t, sin6_scope_id)
34}
35{const struct in6_addr *x = &in6addr_any;}
36{const struct in6_addr *x = &in6addr_loopback;}
37{struct in6_addr x = IN6ADDR_ANY_INIT;}
38{struct in6_addr x = IN6ADDR_LOOPBACK_INIT;}
39{
40struct ipv6_mreq x;
41F(struct in6_addr, ipv6mr_multiaddr)
42F(unsigned, ipv6mr_interface)
43}
44C(IPPROTO_IP)
45C(IPPROTO_IPV6)
46C(IPPROTO_ICMP)
47C(IPPROTO_RAW)
48C(IPPROTO_TCP)
49C(IPPROTO_UDP)
50C(INADDR_ANY)
51C(INADDR_BROADCAST)
52C(INET_ADDRSTRLEN)
53I(uint32_t,htonl(0LL))
54I(uint16_t,htons(0LL))
55I(uint32_t,ntohl(0LL))
56I(uint16_t,ntohs(0LL))
57C(INET6_ADDRSTRLEN)
58C(IPV6_JOIN_GROUP)
59C(IPV6_LEAVE_GROUP)
60C(IPV6_MULTICAST_HOPS)
61C(IPV6_MULTICAST_IF)
62C(IPV6_MULTICAST_LOOP)
63C(IPV6_UNICAST_HOPS)
64C(IPV6_V6ONLY)
65I(int,IN6_IS_ADDR_UNSPECIFIED(&in6addr_any))
66I(int,IN6_IS_ADDR_LOOPBACK(&in6addr_any))
67I(int,IN6_IS_ADDR_MULTICAST(&in6addr_any))
68I(int,IN6_IS_ADDR_LINKLOCAL(&in6addr_any))
69I(int,IN6_IS_ADDR_SITELOCAL(&in6addr_any))
70I(int,IN6_IS_ADDR_V4MAPPED(&in6addr_any))
71I(int,IN6_IS_ADDR_V4COMPAT(&in6addr_any))
72I(int,IN6_IS_ADDR_MC_NODELOCAL(&in6addr_any))
73I(int,IN6_IS_ADDR_MC_LINKLOCAL(&in6addr_any))
74I(int,IN6_IS_ADDR_MC_SITELOCAL(&in6addr_any))
75I(int,IN6_IS_ADDR_MC_ORGLOCAL(&in6addr_any))
76I(int,IN6_IS_ADDR_MC_GLOBAL(&in6addr_any))
77}
78