X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=e_os.h;h=ec011c8cebeecdce2647a80fe33d8fbe418079af;hp=3fbfe8e0ba69c3badc359d1057542dc3a21f0587;hb=5ad4fdce41bb1ce7762b70fb50f732f70e3772cf;hpb=8711efb4984b66a901b543d1b5d96fc5b6928d10 diff --git a/e_os.h b/e_os.h index 3fbfe8e0ba..ec011c8ceb 100644 --- a/e_os.h +++ b/e_os.h @@ -82,7 +82,7 @@ extern "C" { #define DEVRANDOM "/dev/urandom","/dev/random","/dev/srandom" #endif #ifndef DEVRANDOM_EGD -/* set this to a comma-seperated list of 'egd' sockets to try out. These +/* set this to a comma-separated list of 'egd' sockets to try out. These * sockets will be tried in the order listed in case accessing the device files * listed in DEVRANDOM did not return enough entropy. */ #define DEVRANDOM_EGD "/var/run/egd-pool","/dev/egd-pool","/etc/egd-pool","/etc/entropy" @@ -94,21 +94,6 @@ extern "C" { # define NO_SYSLOG #endif -#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) -# 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 NO_SYSLOG -# undef DEVRANDOM -# define GETPID_IS_MEANINGLESS -# endif -#endif - /******************************************************************** The Microsoft section ********************************************************************/ @@ -135,6 +120,7 @@ extern "C" { #endif #ifdef WIN32 +#define NO_SYS_UN_H #define get_last_sys_error() GetLastError() #define clear_sys_error() SetLastError(0) #if !defined(WINNT) @@ -150,7 +136,6 @@ extern "C" { #define clear_socket_error() WSASetLastError(0) #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(__DJGPP__) #define WATT32 #define get_last_socket_error() errno @@ -158,12 +143,6 @@ extern "C" { #define closesocket(s) close_s(s) #define readsocket(s,b,n) read_s(s,b,n) #define writesocket(s,b,n) send(s,b,n,0) -#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)) #elif defined(OPENSSL_SYS_VMS) #define get_last_socket_error() errno #define clear_socket_error() errno=0 @@ -178,13 +157,6 @@ extern "C" { #define closesocket(s) close(s) #define readsocket(s,b,n) read((s),(b),(n)) #define writesocket(s,b,n) write((s),(char *)(b),(n)) -#elif defined(OPENSSL_SYS_BEOS_R5) -#define get_last_socket_error() errno -#define clear_socket_error() errno=0 -#define FIONBIO SO_NONBLOCK -#define ioctlsocket(a,b,c) setsockopt((a),SOL_SOCKET,(b),(c),sizeof(*(c))) -#define readsocket(s,b,n) recv((s),(b),(n),0) -#define writesocket(s,b,n) send((s),(b),(n),0) #elif defined(OPENSSL_SYS_NETWARE) #if defined(NETWARE_BSDSOCK) #define get_last_socket_error() errno @@ -272,7 +244,7 @@ extern "C" { */ # define _WIN32_WINNT 0x0400 # endif -# if !defined(OPENSSL_NO_SOCK) && defined(_WIN32_WINNT) +# if !defined(OPENSSL_NO_SOCK) && (defined(_WIN32_WINNT) || defined(_WIN32_WCE)) /* * Just like defining _WIN32_WINNT including winsock2.h implies * certain "discipline" for maintaining [broad] binary compatibility. @@ -288,11 +260,14 @@ extern "C" { # include # include # include +# if defined(_WIN32_WCE) && !defined(EACCES) +# define EACCES 13 +# endif # include # ifdef _WIN64 # define strlen(s) _strlen31(s) /* cut strings to 2GB */ -static unsigned int _strlen31(const char *str) +static __inline unsigned int _strlen31(const char *str) { unsigned int len=0; while (*str && len<0x80000000U) str++, len++; @@ -308,8 +283,8 @@ static unsigned int _strlen31(const char *str) # undef isupper # undef isxdigit # endif -# if defined(_MSC_VER) && !defined(_DLL) && defined(stdin) -# if _MSC_VER>=1300 +# if defined(_MSC_VER) && !defined(_WIN32_WCE) && !defined(_DLL) && defined(stdin) +# if _MSC_VER>=1300 && _MSC_VER<1600 # undef stdin # undef stdout # undef stderr @@ -317,7 +292,7 @@ static unsigned int _strlen31(const char *str) # define stdin (&__iob_func()[0]) # define stdout (&__iob_func()[1]) # define stderr (&__iob_func()[2]) -# elif defined(I_CAN_LIVE_WITH_LNK4049) +# elif _MSC_VER<1300 && defined(I_CAN_LIVE_WITH_LNK4049) # undef stdin # undef stdout # undef stderr @@ -334,15 +309,13 @@ static unsigned int _strlen31(const char *str) # endif # endif # endif -# include -# include +# include +# include # ifdef OPENSSL_SYS_WINCE # define OPENSSL_NO_POSIX_IO # endif -# define ssize_t long - # if defined (__BORLANDC__) # define _setmode setmode # define _O_TEXT O_TEXT @@ -372,6 +345,13 @@ static unsigned int _strlen31(const char *str) # define DEFAULT_HOME "C:" # endif +/* Avoid Windows 8 SDK GetVersion deprecated problems */ +#if defined(_MSC_VER) && _MSC_VER>=1800 +# define check_winnt() (1) +#else +# define check_winnt() (GetVersion() < 0x80000000) +#endif + #else /* The non-microsoft world */ # ifdef OPENSSL_SYS_VMS @@ -441,9 +421,6 @@ static unsigned int _strlen31(const char *str) # else /* !defined VMS */ -# ifdef OPENSSL_SYS_MPE -# define NO_SYS_PARAM_H -# endif # ifdef OPENSSL_UNISTD # include OPENSSL_UNISTD # else @@ -452,18 +429,6 @@ static unsigned int _strlen31(const char *str) # ifndef NO_SYS_TYPES_H # include # endif -# if defined(NeXT) || defined(OPENSSL_SYS_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) */ -# endif -# if defined(NeXT) || defined(OPENSSL_SYS_NEWS4) || defined(OPENSSL_SYS_SUNOS) -# define ssize_t int /* ditto */ -# endif -# ifdef OPENSSL_SYS_NEWS4 /* setvbuf is missing on mips-sony-bsd */ -# define setvbuf(a, b, c, d) setbuffer((a), (b), (d)) - typedef unsigned long clock_t; -# endif # ifdef OPENSSL_SYS_WIN32_CYGWIN # include # include @@ -484,6 +449,10 @@ static unsigned int _strlen31(const char *str) /*************/ +#if defined(OPENSSL_NO_SOCK) && !defined(OPENSSL_NO_DGRAM) +# define OPENSSL_NO_DGRAM +#endif + #ifdef USE_SOCKETS # if defined(WINDOWS) || defined(MSDOS) /* windows world */ @@ -527,14 +496,6 @@ static unsigned int _strlen31(const char *str) # define SHUTDOWN2(fd) close_s(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) - # elif defined(OPENSSL_SYS_NETWARE) /* NetWare uses the WinSock2 interfaces by default, but can be configured for BSD */ @@ -563,8 +524,6 @@ static unsigned int _strlen31(const char *str) # endif # ifdef OPENSSL_SYS_VXWORKS # include -# elif !defined(OPENSSL_SYS_MPE) -# include /* Needed under linux for FD_XXX */ # endif # include @@ -574,19 +533,22 @@ static unsigned int _strlen31(const char *str) # include # else # include +# ifndef NO_SYS_UN_H +# ifdef OPENSSL_SYS_VXWORKS +# include +# else +# include +# endif +# ifndef UNIX_PATH_MAX +# define UNIX_PATH_MAX sizeof(((struct sockaddr_un *)NULL)->sun_path) +# endif +# endif # ifdef FILIO_H # include /* Added for FIONBIO under unixware */ # endif # include -# if !defined(OPENSSL_SYS_BEOS_R5) # include # endif -# endif - -# if defined(NeXT) || defined(_NEXT_SOURCE) -# include -# include -# endif # ifdef OPENSSL_SYS_AIX # include @@ -624,12 +586,18 @@ static unsigned int _strlen31(const char *str) # define INVALID_SOCKET (-1) # endif /* INVALID_SOCKET */ # endif -#endif -#if defined(__ultrix) -# ifndef ssize_t -# define ssize_t int +/* Some IPv6 implementations are broken, disable them in known bad + * versions. + */ +# if !defined(OPENSSL_USE_IPV6) +# if defined(AF_INET6) && !defined(NETWARE_CLIB) +# define OPENSSL_USE_IPV6 1 +# else +# define OPENSSL_USE_IPV6 0 +# endif # endif + #endif #if defined(sun) && !defined(__svr4__) && !defined(__SVR4) @@ -718,18 +686,25 @@ struct servent *getservbyname(const char *name, const char *proto); #endif /* end vxworks */ -/* beos */ -#if defined(OPENSSL_SYS_BEOS_R5) -#define SO_ERROR 0 -#define NO_SYS_UN -#define IPPROTO_IP 0 -#include +#if !defined(inline) && !defined(__cplusplus) +# if defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L + /* do nothing, inline works */ +# elif defined(__GNUC__) && __GNUC__>=2 +# define inline __inline__ +# elif defined(_MSC_VER) + /* + * Visual Studio: inline is available in C++ only, however + * __inline is available for C, see + * http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx + */ +# define inline __inline +# else +# define inline +# endif #endif - #ifdef __cplusplus } #endif #endif -