Damien Miller | 34132e5 | 2000-01-14 15:45:46 +1100 | [diff] [blame] | 1 | #ifndef _FAKE_SOCKET_H |
| 2 | #define _FAKE_SOCKET_H |
| 3 | |
| 4 | #include "config.h" |
| 5 | #include "sys/types.h" |
| 6 | |
| 7 | #ifndef HAVE_STRUCT_SOCKADDR_STORAGE |
| 8 | #define _SS_MAXSIZE 128 /* Implementation specific max size */ |
| 9 | #define _SS_ALIGNSIZE (sizeof(int)) |
| 10 | #define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(u_short)) |
| 11 | #define _SS_PAD2SIZE (_SS_MAXSIZE - (sizeof(u_short) + \ |
| 12 | _SS_PAD1SIZE + _SS_ALIGNSIZE)) |
| 13 | |
| 14 | struct sockaddr_storage { |
| 15 | u_short ss_family; |
| 16 | char __ss_pad1[_SS_PAD1SIZE]; |
| 17 | int __ss_align; |
| 18 | char __ss_pad2[_SS_PAD2SIZE]; |
| 19 | }; |
| 20 | #endif /* !HAVE_STRUCT_SOCKADDR_STORAGE */ |
| 21 | |
| 22 | #ifndef IN6_IS_ADDR_LOOPBACK |
| 23 | #define IN6_IS_ADDR_LOOPBACK(a) \ |
| 24 | (((u_int32_t *) (a))[0] == 0 && ((u_int32_t *) (a))[1] == 0 && \ |
| 25 | ((u_int32_t *) (a))[2] == 0 && ((u_int32_t *) (a))[3] == htonl (1)) |
| 26 | #endif /* !IN6_IS_ADDR_LOOPBACK */ |
| 27 | |
| 28 | #ifndef HAVE_STRUCT_IN6_ADDR |
| 29 | struct in6_addr { |
| 30 | u_int8_t s6_addr[16]; |
| 31 | }; |
| 32 | #endif /* !HAVE_STRUCT_IN6_ADDR */ |
| 33 | |
| 34 | #ifndef HAVE_STRUCT_SOCKADDR_IN6 |
| 35 | struct sockaddr_in6 { |
| 36 | unsigned short sin6_family; |
| 37 | u_int16_t sin6_port; |
| 38 | u_int32_t sin6_flowinfo; |
| 39 | struct in6_addr sin6_addr; |
| 40 | }; |
| 41 | #endif /* !HAVE_STRUCT_SOCKADDR_IN6 */ |
| 42 | |
| 43 | #ifndef AF_INET6 |
| 44 | /* Define it to something that should never appear */ |
| 45 | #define AF_INET6 AF_MAX |
| 46 | #endif |
| 47 | |
| 48 | #endif /* !_FAKE_SOCKET_H */ |
| 49 | |