#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 */

