1 #ifndef _XINETD_LIBPORTABLE
2 #define _XINETD_LIBPORTABLE 1
6 #include <sys/socket.h>
7 #include <netinet/in.h>
11 #define IPV6_ADDRFORM 1
15 #define NI_MAXHOST 1025
19 double difftime( time_t, time_t );
22 #ifndef HAVE_STRCASECMP
23 int strcasecmp(const char *s1, const char *s2);
31 int inet_aton(const char *cp, struct in_addr *addr);
34 #ifndef HAVE_GETNAMEINFO
35 int getnameinfo(const struct sockaddr *sa, size_t salen, char *host,
36 size_t hostlen, char *serv, size_t servlen, int flags);
39 #ifndef HAVE_INET_NTOP
40 const char *inet_ntop(int, const void *, char *, size_t);
44 #define APPEND(a, b) APPEND2 (a, b)
48 #define APPEND2(a, b) a##b
52 #define FLOAT_TYPE double
60 int APPEND(FUNC_PREFIX,fcvt_r)(FLOAT_TYPE value,int ndigit,int *decpt,int *sign,char *buf,size_t len);
61 char *APPEND(FUNC_PREFIX,fcvt)(FLOAT_TYPE value,int ndigit,int *decpt,int *sign);
64 char *APPEND(FUNC_PREFIX,ecvt)(FLOAT_TYPE value,int ndigit,int *decpt,int *sign);
65 int APPEND(FUNC_PREFIX,ecvt_r)(FLOAT_TYPE value,int ndigit,int *decpt,int *sign,char *buf,size_t len);
68 char *APPEND(FUNC_PREFIX,gcvt)(FLOAT_TYPE value,int ndigit,char *buf);
71 /* from OpenSSH's fake-socket.h */
73 #ifndef HAVE_STRUCT_SOCKADDR_STORAGE
74 # define _SS_MAXSIZE 128 /* Implementation specific max size */
75 # define _SS_PADSIZE (_SS_MAXSIZE - sizeof (struct sockaddr))
77 struct sockaddr_storage {
78 struct sockaddr ss_sa;
79 char __ss_pad2[_SS_PADSIZE];
81 # define ss_family ss_sa.sa_family
82 #endif /* !HAVE_STRUCT_SOCKADDR_STORAGE */
84 #ifndef IN6_IS_ADDR_LOOPBACK
85 # define IN6_IS_ADDR_LOOPBACK(a) \
86 (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
87 ((uint32_t *) (a))[2] == 0 && ((uint32_t *) (a))[3] == htonl (1))
88 #endif /* !IN6_IS_ADDR_LOOPBACK */
90 #ifndef HAVE_STRUCT_IN6_ADDR
94 #endif /* !HAVE_STRUCT_IN6_ADDR */
96 #ifndef HAVE_STRUCT_SOCKADDR_IN6
98 unsigned short sin6_family;
100 uint32_t sin6_flowinfo;
101 struct in6_addr sin6_addr;
103 #endif /* !HAVE_STRUCT_SOCKADDR_IN6 */
106 /* Define it to something that should never appear */
107 #define AF_INET6 AF_MAX
111 #endif /* _XINETD_LIBPORTABLE */