Avoid some warnings, and run "make update".
[openssl.git] / e_os.h
diff --git a/e_os.h b/e_os.h
index 678e4d547025113992e54dfea13797bb441ab718..fa2a117762b7ef1519cdfeddbb752cd0513861e9 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -59,6 +59,8 @@
 #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; this file e_os.h is not part of the exported
@@ -80,6 +82,20 @@ 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
  ********************************************************************/
@@ -100,12 +116,13 @@ extern "C" {
 #  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
@@ -120,6 +137,12 @@ extern "C" {
 #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
@@ -173,6 +196,7 @@ extern "C" {
 #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)
@@ -228,8 +252,17 @@ extern "C" {
                                      __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
@@ -268,11 +301,17 @@ extern HINSTANCE _hInstance;
 #      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 */
@@ -320,8 +359,8 @@ extern HINSTANCE _hInstance;
 
 #    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
@@ -351,6 +390,9 @@ extern HINSTANCE _hInstance;
 #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