X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=e_os.h;h=ced9483ab00ec41d0277ef9b8b0add5a590665ea;hp=c6c6082c83feb2da2499ca3972492af6fdbf7fd4;hb=5a3d21c0585064292bde5cd34089e120487ab687;hpb=e527201f6be3c295358bcc8b6bafec598f02dc97 diff --git a/e_os.h b/e_os.h index c6c6082c83..ced9483ab0 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" @@ -99,7 +99,6 @@ extern "C" { # 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 @@ -112,7 +111,7 @@ extern "C" { /******************************************************************** The Microsoft section ********************************************************************/ -/* The following is used becaue of the small stack in some +/* The following is used because of the small stack in some * Microsoft operating systems */ #if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYSNAME_WIN32) # define MS_STATIC static @@ -135,6 +134,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 +150,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 @@ -272,22 +271,25 @@ 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 maintaing [broad] binary compatibility. + * certain "discipline" for maintaining [broad] binary compatibility. * As long as structures are invariant among Winsock versions, * it's sufficient to check for specific Winsock2 API availability * at run-time [DSO_global_lookup is recommended]... */ # include # include - /* yes, they have to be #included prior */ + /* yes, they have to be #included prior to */ # endif # include # include # include # include +# if defined(_WIN32_WCE) && !defined(EACCES) +# define EACCES 13 +# endif # include # ifdef _WIN64 # define strlen(s) _strlen31(s) @@ -308,8 +310,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 +319,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 +336,15 @@ static unsigned int _strlen31(const char *str) # endif # endif # endif -# include -# include +# if !defined(OPENSSL_FIPSCANISTER) +# include +# include +# endif # 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,7 +374,23 @@ static unsigned int _strlen31(const char *str) # define DEFAULT_HOME "C:" # endif -#else /* The non-microsoft world world */ +/* 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 + +/* + * Visual Studio: inline is available in C++ only, however + * __inline is available for C, see + * http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx + */ +#if defined(_MSC_VER) && !defined(__cplusplus) && !defined(inline) +# define inline __inline +#endif + +#else /* The non-microsoft world */ # ifdef OPENSSL_SYS_VMS # define VMS 1 @@ -457,9 +475,6 @@ static unsigned int _strlen31(const char *str) * (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; @@ -574,6 +589,16 @@ 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 @@ -624,12 +649,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(OPENSSL_SYS_BEOS_BONE) && !defined(NETWARE_CLIB) +# define OPENSSL_USE_IPV6 1 +# else +# define OPENSSL_USE_IPV6 0 +# endif # endif + #endif #if defined(sun) && !defined(__svr4__) && !defined(__SVR4) @@ -732,4 +763,3 @@ struct servent *getservbyname(const char *name, const char *proto); #endif #endif -