#define DEVRANDOM "/dev/urandom"
#endif
+#if defined(VXWORKS)
+# define NO_SYS_PARAM_H
+# define NO_CHMOD
+# define NO_SYSLOG
+#endif
+
#if defined(__MWERKS__) && defined(macintosh)
# if macintosh==1
# ifndef MAC_OS_GUSI_SOURCE
# define MAC_OS_pre_X
# define NO_SYS_TYPES_H
+ typedef long ssize_t;
# endif
# define NO_SYS_PARAM_H
# define NO_CHMOD
# define MS_STATIC
#endif
-#if defined(_WIN32) && !defined(WIN32)
+#if defined(_WIN32) && !defined(WIN32) && !defined(__CYGWIN32__) && !defined(_UWIN)
# define WIN32
#endif
-#if defined(WIN32) || defined(WIN16)
+#if (defined(WIN32) || defined(WIN16)) && !defined(__CYGWIN32__) && !defined(_UWIN)
# ifndef WINDOWS
# define WINDOWS
# endif
#define clear_sys_error() errno=0
#endif
-#ifdef WINDOWS
+#if defined(WINDOWS) && !defined(__CYGWIN32__) && !defined(_UWIN)
+
#define get_last_socket_error() WSAGetLastError()
#define clear_socket_error() WSASetLastError(0)
#define readsocket(s,b,n) recv((s),(b),(n),0)
#define closesocket(s) MacSocket_close(s)
#define readsocket(s,b,n) MacSocket_recv((s),(b),(n),true)
#define writesocket(s,b,n) MacSocket_send((s),(b),(n))
+#elif defined(VMS)
+#define get_last_socket_error() errno
+#define clear_socket_error() errno=0
+#define ioctlsocket(a,b,c) ioctl(a,b,c)
+#define closesocket(s) close(s)
+#define readsocket(s,b,n) recv((s),(b),(n),0)
+#define writesocket(s,b,n) send((s),(b),(n),0)
#else
#define get_last_socket_error() errno
#define clear_socket_error() errno=0
# define NO_FP_API
#endif
-#if defined(WINDOWS) || defined(MSDOS)
+#if (defined(WINDOWS) || defined(MSDOS)) && !defined(__CYGWIN32__) && !defined(_UWIN)
# ifndef S_IFDIR
# define S_IFDIR _S_IFDIR
# include <io.h>
# include <fcntl.h>
-# ifdef __MINGW32__
-# define ssize_t long
-# endif
+# define ssize_t long
# if defined (__BORLANDC__)
# define _setmode setmode
# define SSLEAY_CONF OPENSSL_CONF
# define NUL_DEV "nul"
# define RFILE ".rnd"
+# define DEFAULT_HOME "C:"
#else /* The non-microsoft world world */
# define NO_SYS_PARAM_H
# else
/* !defined VMS */
+# ifdef MPE
+# define NO_SYS_PARAM_H
+# endif
# ifdef OPENSSL_UNISTD
# include OPENSSL_UNISTD
# else
# ifndef NO_SYS_TYPES_H
# include <sys/types.h>
# endif
-# ifdef NeXT
+# if defined(NeXT) || defined(NEWS4)
# define pid_t int /* pid_t is missing on NEXTSTEP/OPENSTEP
* (unless when compiling with -D_POSIX_SOURCE,
* which doesn't work for us) */
# define ssize_t int /* ditto */
# endif
+# ifdef NEWS4 /* setvbuf is missing on mips-sony-bsd */
+# define setvbuf(a, b, c, d) setbuffer((a), (b), (d))
+ typedef unsigned long clock_t;
+# endif
# define OPENSSL_CONF "openssl.cnf"
# define SSLEAY_CONF OPENSSL_CONF
# ifndef NO_SYS_PARAM_H
# include <sys/param.h>
# endif
-# include <sys/time.h> /* Needed under linux for FD_XXX */
+# ifdef VXWORKS
+# include <time.h>
+# elif !defined(MPE)
+# include <sys/time.h> /* Needed under linux for FD_XXX */
+# endif
# include <netdb.h>
# if defined(VMS) && !defined(__DECC)
# include <socket.h>
# include <in.h>
+# include <inet.h>
# else
# include <sys/socket.h>
# ifdef FILIO_H
# include <sys/filio.h> /* Added for FIONBIO under unixware */
# endif
# include <netinet/in.h>
+# include <arpa/inet.h>
# endif
# if defined(NeXT) || defined(_NEXT_SOURCE)
# include <sys/select.h>
# endif
+# ifdef __QNX__
+# include <sys/select.h>
+# endif
+
# if defined(sun)
# include <sys/filio.h>
# else
# endif
#endif
-#if defined(THREADS) || defined(sun)
-#ifndef _REENTRANT
-#define _REENTRANT
+#if defined(__ultrix)
+# ifndef ssize_t
+# define ssize_t int
+# endif
#endif
+
+#if defined(sun) && !defined(__svr4__) && !defined(__SVR4)
+ /* include headers first, so our defines don't break it */
+#include <stdlib.h>
+#include <string.h>
+ /* bcopy can handle overlapping moves according to SunOS 4.1.4 manpage */
+# define memmove(s1,s2,n) bcopy((s2),(s1),(n))
+# define strtoul(s,e,b) ((unsigned long int)strtol((s),(e),(b)))
+extern char *sys_errlist[]; extern int sys_nerr;
+# define strerror(errnum) \
+ (((errnum)<0 || (errnum)>=sys_nerr) ? NULL : sys_errlist[errnum])
#endif
/***********************************************/