blob: 0e1624d1125de419341f70f3c0d102c17e56e81f [file] [log] [blame] [raw]
#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 */