1 /* $Id: fake-socket.h,v 1.3 2002/04/12 03:35:40 tim Exp $ */
2
3 #ifndef _FAKE_SOCKET_H
4 #define _FAKE_SOCKET_H
5
6 #pragma ident "%Z%%M% %I% %E% SMI"
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 #include "includes.h"
13 #include "sys/types.h"
14
15 #ifndef HAVE_STRUCT_SOCKADDR_STORAGE
16 # define _SS_MAXSIZE 128 /* Implementation specific max size */
17 # define _SS_PADSIZE (_SS_MAXSIZE - sizeof (struct sockaddr))
18
19 struct sockaddr_storage {
20 struct sockaddr ss_sa;
21 char __ss_pad2[_SS_PADSIZE];
22 };
23 # define ss_family ss_sa.sa_family
24 #endif /* !HAVE_STRUCT_SOCKADDR_STORAGE */
25
26 #ifndef IN6_IS_ADDR_LOOPBACK
27 # define IN6_IS_ADDR_LOOPBACK(a) \
28 (((u_int32_t *) (a))[0] == 0 && ((u_int32_t *) (a))[1] == 0 && \
29 ((u_int32_t *) (a))[2] == 0 && ((u_int32_t *) (a))[3] == htonl (1))
30 #endif /* !IN6_IS_ADDR_LOOPBACK */
31
32 #ifndef HAVE_STRUCT_IN6_ADDR
33 struct in6_addr {
34 u_int8_t s6_addr[16];
35 };
36 #endif /* !HAVE_STRUCT_IN6_ADDR */
37
38 #ifndef HAVE_STRUCT_SOCKADDR_IN6
39 struct sockaddr_in6 {
40 unsigned short sin6_family;
41 u_int16_t sin6_port;
42 u_int32_t sin6_flowinfo;
43 struct in6_addr sin6_addr;
44 };
45 #endif /* !HAVE_STRUCT_SOCKADDR_IN6 */
46
47 #ifndef AF_INET6
48 /* Define it to something that should never appear */
49 #define AF_INET6 AF_MAX
50 #endif
51
52 #ifdef __cplusplus
53 }
54 #endif
55
56 #endif /* _FAKE_SOCKET_H */