| #ifndef _FAKE_SOCKET_H |
| #define _FAKE_SOCKET_H |
| |
| #include "config.h" |
| #include "sys/types.h" |
| |
| #ifndef HAVE_STRUCT_SOCKADDR_STORAGE |
| # define _SS_MAXSIZE 128 /* Implementation specific max size */ |
| # define _SS_ALIGNSIZE (sizeof(int)) |
| # define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(u_short)) |
| # define _SS_PAD2SIZE (_SS_MAXSIZE - (sizeof(u_short) + \ |
| _SS_PAD1SIZE + _SS_ALIGNSIZE)) |
| |
| struct sockaddr_storage { |
| u_short ss_family; |
| char __ss_pad1[_SS_PAD1SIZE]; |
| int __ss_align; |
| char __ss_pad2[_SS_PAD2SIZE]; |
| }; |
| #endif /* !HAVE_STRUCT_SOCKADDR_STORAGE */ |
| |
| #ifndef IN6_IS_ADDR_LOOPBACK |
| # define IN6_IS_ADDR_LOOPBACK(a) \ |
| (((u_int32_t *) (a))[0] == 0 && ((u_int32_t *) (a))[1] == 0 && \ |
| ((u_int32_t *) (a))[2] == 0 && ((u_int32_t *) (a))[3] == htonl (1)) |
| #endif /* !IN6_IS_ADDR_LOOPBACK */ |
| |
| #ifndef HAVE_STRUCT_IN6_ADDR |
| struct in6_addr { |
| u_int8_t s6_addr[16]; |
| }; |
| #endif /* !HAVE_STRUCT_IN6_ADDR */ |
| |
| #ifndef HAVE_STRUCT_SOCKADDR_IN6 |
| struct sockaddr_in6 { |
| unsigned short sin6_family; |
| u_int16_t sin6_port; |
| u_int32_t sin6_flowinfo; |
| struct in6_addr sin6_addr; |
| }; |
| #endif /* !HAVE_STRUCT_SOCKADDR_IN6 */ |
| |
| #ifndef AF_INET6 |
| /* Define it to something that should never appear */ |
| #define AF_INET6 AF_MAX |
| #endif |
| |
| #endif /* !_FAKE_SOCKET_H */ |
| |