xref: /titanic_44/usr/src/cmd/ssh/include/fake-socket.h (revision e71ca95ca6de23d33b54cb55cefdef30bc7c969b)
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 */
57