#ifndef HEADER_E_OS_H
#define HEADER_E_OS_H
+#include <openssl/opensslconf.h>
+
#include <openssl/e_os2.h>
/* <openssl/e_os2.h> contains what we can justify to make visible
- * to the outside. e_os.h shouldn't even be in the include/openssl
- * directory, these are just local definitions. */
+ * to the outside; this file e_os.h is not part of the exported
+ * interface. */
#ifdef __cplusplus
extern "C" {
#define DEVRANDOM "/dev/urandom"
#endif
+#if defined(__MWERKS__) && defined(macintosh)
+# if macintosh==1
+# ifndef MAC_OS_GUSI_SOURCE
+# define MAC_OS_pre_X
+# define NO_SYS_TYPES_H
+# endif
+# define NO_SYS_PARAM_H
+# define NO_CHMOD
+# define NO_SYSLOG
+# undef DEVRANDOM
+# define GETPID_IS_MEANINGLESS
+# endif
+#endif
+
/********************************************************************
The Microsoft section
********************************************************************/
# endif
#endif
+#if defined(MSDOS) && !defined(GETPID_IS_MEANINGLESS)
+# define GETPID_IS_MEANINGLESS
+#endif
+
#ifdef WIN32
#define get_last_sys_error() GetLastError()
#define clear_sys_error() SetLastError(0)
-/* These are defined in wincrypt.h and can cause problems */
-#undef X509_NAME
-#undef PKCS7_SIGNER_INFO
#if !defined(WINNT)
#define WIN_CONSOLE_BUG
#endif
#define readsocket(s,b,n) recv((s),(b),(n),0)
#define writesocket(s,b,n) send((s),(b),(n),0)
#define EADDRINUSE WSAEADDRINUSE
+#elif defined(MAC_OS_pre_X)
+#define get_last_socket_error() errno
+#define clear_socket_error() errno=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))
#else
#define get_last_socket_error() errno
#define clear_socket_error() errno=0
#define _O_TEXT O_TEXT
#define _O_BINARY O_BINARY
#define _int64 __int64
+#define _kbhit kbhit
#endif
#if defined(WIN16) && !defined(MONOLITH) && defined(SSLEAY) && defined(_WINEXITNOPERSIST)
__VMS_EXIT |= 0x10000000; \
return(n); } while(0)
# endif
+# define NO_SYS_PARAM_H
# else
-# include <unistd.h>
+ /* !defined VMS */
+# ifdef OPENSSL_UNISTD
+# include OPENSSL_UNISTD
+# else
+# include <unistd.h>
+# endif
+# ifndef NO_SYS_TYPES_H
+# include <sys/types.h>
+# endif
# define OPENSSL_CONF "openssl.cnf"
# define SSLEAY_CONF OPENSSL_CONF
# define SHUTDOWN2(fd) { shutdown((fd),2); closesocket(fd); }
# endif
+# elif defined(MAC_OS_pre_X)
+
+# include "MacSocket.h"
+# define SSLeay_Write(a,b,c) MacSocket_send((a),(b),(c))
+# define SSLeay_Read(a,b,c) MacSocket_recv((a),(b),(c),true)
+# define SHUTDOWN(fd) MacSocket_close(fd)
+# define SHUTDOWN2(fd) MacSocket_close(fd)
# else
-# include <sys/types.h>
-# ifndef VMS
+# ifndef NO_SYS_PARAM_H
# include <sys/param.h>
# endif
# include <sys/time.h> /* Needed under linux for FD_XXX */
# define SSLeay_Read(a,b,c) read((a),(b),(c))
# define SSLeay_Write(a,b,c) write((a),(b),(c))
-# define SHUTDOWN(fd) { shutdown((fd),0); close((fd)); }
-# define SHUTDOWN2(fd) { shutdown((fd),2); close((fd)); }
+# define SHUTDOWN(fd) { shutdown((fd),0); closesocket((fd)); }
+# define SHUTDOWN2(fd) { shutdown((fd),2); closesocket((fd)); }
# define INVALID_SOCKET (-1)
# endif
#endif
#ifdef sgi
#define IRIX_CC_BUG /* all version of IRIX I've tested (4.* 5.*) */
#endif
+#ifdef SNI
+#define IRIX_CC_BUG /* CDS++ up to V2.0Bsomething suffered from the same bug.*/
+#endif
#ifdef NO_MD2
#define MD2_Init MD2Init