blob: e11ad44e0a1190d4275b16f53c01dedd7e8312c9 [file] [log] [blame]
Damien Miller34132e52000-01-14 15:45:46 +11001#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
14struct 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
29struct in6_addr {
30 u_int8_t s6_addr[16];
31};
32#endif /* !HAVE_STRUCT_IN6_ADDR */
33
34#ifndef HAVE_STRUCT_SOCKADDR_IN6
35struct 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