#include <netinet/in_systm.h> /* For typedefs */
#include <netinet/in.h> /* For IPv6 macros */
#include <netinet/ip.h> /* For IPTOS macros */
+#ifdef HAVE_RPC_TYPES_H
+# include <rpc/types.h> /* For INADDR_LOOPBACK */
+#endif
#ifdef HAVE_SYS_UN_H
# include <sys/un.h> /* For sockaddr_un */
#endif
# define NFDBITS (8 * sizeof(unsigned long))
#endif
+/*
+SCO Open Server 3 has INADDR_LOOPBACK defined in rpc/rpc.h but
+including rpc/rpc.h breaks Solaris 6
+*/
+#ifndef INADDR_LOOPBACK
+#define INADDR_LOOPBACK ((ulong)0x7f000001)
+#endif
+
/* Types */
/* If sys/types.h does not supply intXX_t, supply them ourselves */
typedef short int int16_t;
# else
# ifdef _CRAY
+# if (SIZEOF_SHORT_INT == 4)
+typedef short int16_t;
+# else
typedef long int16_t;
+# endif
# else
# error "16 bit int type not found."
# endif /* _CRAY */
typedef unsigned short int u_int16_t;
# else
# ifdef _CRAY
+# if (SIZEOF_SHORT_INT == 4)
+typedef unsigned short u_int16_t;
+# else
typedef unsigned long u_int16_t;
+# endif
# else
# error "16 bit int type not found."
# endif
# define HAVE_PID_T
#endif /* HAVE_PID_T */
+#ifndef HAVE_SIG_ATOMIC_T
+typedef int sig_atomic_t;
+# define HAVE_SIG_ATOMIC_T
+#endif /* HAVE_SIG_ATOMIC_T */
+
#ifndef HAVE_MODE_T
typedef int mode_t;
# define HAVE_MODE_T
/* derived from XF4/xc/lib/dps/Xlibnet.h */
#ifndef X_UNIX_PATH
-#ifdef __hpux
-#define X_UNIX_PATH "/usr/spool/sockets/X11/%u"
-#else
-#define X_UNIX_PATH "/tmp/.X11-unix/X%u"
-#endif
+# ifdef __hpux
+# define X_UNIX_PATH "/var/spool/sockets/X11/%u"
+# else
+# define X_UNIX_PATH "/tmp/.X11-unix/X%u"
+# endif
#endif /* X_UNIX_PATH */
#define _PATH_UNIX_X X_UNIX_PATH
# define howmany(x,y) (((x)+((y)-1))/(y))
#endif
+#ifdef __hpux
+#define MAP_ANON MAP_ANONYMOUS
+#endif
+
+#ifndef ALIGNBYTES
+#define ALIGNBYTES (sizeof(int) - 1)
+#endif
+#ifndef ALIGN
+#define ALIGN(p) (((u_int)(p) + ALIGNBYTES) &~ ALIGNBYTES)
+#endif
+#ifndef __CMSG_ALIGN
+#define __CMSG_ALIGN(len) ALIGN(len)
+#endif
+
+/* Length of the contents of a control message of length len */
+#ifndef CMSG_LEN
+#define CMSG_LEN(len) (__CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
+#endif
+
+/* Length of the space taken up by a padded control message of length len */
+#ifndef CMSG_SPACE
+#define CMSG_SPACE(len) (__CMSG_ALIGN(sizeof(struct cmsghdr)) + __CMSG_ALIGN(len))
+#endif
+
/* Function replacement / compatibility hacks */
/* In older versions of libpam, pam_strerror takes a single argument */
#endif /* !defined(HAVE_MEMMOVE) && defined(HAVE_BCOPY) */
#if !defined(HAVE_ATEXIT) && defined(HAVE_ON_EXIT)
-# define atexit(a, NULL) on_exit(a, NULL)
+# define atexit(a) on_exit(a, NULL)
#else
# if defined(HAVE_XATEXIT)
# define atexit(a) xatexit(a)
# define OPENSSL_free(x) Free(x)
#endif
+#if defined(HAVE___func__)
+# define __FUNCTION__ __func__
+#elif !defined(HAVE___FUNCTION__)
+# define __FUNCTION__ ""
+#endif
+
/*
* Define this to use pipes instead of socketpairs for communicating with the
* client program. Socketpairs do not seem to work on all systems.