X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=e_os.h;h=0f4b7994f55efb5f964e225c24c7d349ddeb6ab2;hp=a969479ae99511d36c7283596846d3c8dcfba64d;hb=9359fc5ff2c10dae70b7d9303e99312a7c4471d9;hpb=a6efc2d1b8848e3a9f57acfea881e187afa38820 diff --git a/e_os.h b/e_os.h index a969479ae9..0f4b7994f5 100644 --- a/e_os.h +++ b/e_os.h @@ -112,7 +112,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 @@ -190,9 +190,15 @@ extern "C" { #define get_last_socket_error() errno #define clear_socket_error() errno=0 #define closesocket(s) close(s) +#define ioctlsocket(a,b,c) ioctl(a,b,c) +#if defined(NETWARE_LIBC) #define readsocket(s,b,n) recv((s),(b),(n),0) #define writesocket(s,b,n) send((s),(b),(n),0) #else +#define readsocket(s,b,n) recv((s),(char*)(b),(n),0) +#define writesocket(s,b,n) send((s),(char*)(b),(n),0) +#endif +#else #define get_last_socket_error() WSAGetLastError() #define clear_socket_error() WSASetLastError(0) #define readsocket(s,b,n) recv((s),(b),(n),0) @@ -269,16 +275,17 @@ extern "C" { # if !defined(OPENSSL_NO_SOCK) && defined(_WIN32_WINNT) /* * 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 # include @@ -293,6 +300,39 @@ static unsigned int _strlen31(const char *str) } # endif # include +# if defined(_MSC_VER) && _MSC_VER<=1200 && defined(_MT) && defined(isspace) + /* compensate for bug in VC6 ctype.h */ +# undef isspace +# undef isdigit +# undef isalnum +# undef isupper +# undef isxdigit +# endif +# if defined(_MSC_VER) && !defined(_DLL) && defined(stdin) +# if _MSC_VER>=1300 +# undef stdin +# undef stdout +# undef stderr + FILE *__iob_func(); +# define stdin (&__iob_func()[0]) +# define stdout (&__iob_func()[1]) +# define stderr (&__iob_func()[2]) +# elif defined(I_CAN_LIVE_WITH_LNK4049) +# undef stdin +# undef stdout +# undef stderr + /* pre-1300 has __p__iob(), but it's available only in msvcrt.lib, + * or in other words with /MD. Declaring implicit import, i.e. + * with _imp_ prefix, works correctly with all compiler options, + * but without /MD results in LINK warning LNK4049: + * 'locally defined symbol "__iob" imported'. + */ + extern FILE *_imp___iob; +# define stdin (&_imp___iob[0]) +# define stdout (&_imp___iob[1]) +# define stderr (&_imp___iob[2]) +# endif +# endif # endif # include # include @@ -332,7 +372,7 @@ static unsigned int _strlen31(const char *str) # define DEFAULT_HOME "C:" # endif -#else /* The non-microsoft world world */ +#else /* The non-microsoft world */ # ifdef OPENSSL_SYS_VMS # define VMS 1 @@ -382,6 +422,11 @@ static unsigned int _strlen31(const char *str) # undef DEVRANDOM # ifdef NETWARE_CLIB # define getpid GetThreadID + extern int GetThreadID(void); +/* # include */ + extern int kbhit(void); +# else +# include # endif # define NO_SYSLOG # define _setmode setmode @@ -497,7 +542,11 @@ static unsigned int _strlen31(const char *str) # include # include # include -# include +# if defined(NETWARE_CLIB) +# include +# else +# include +# endif # define INVALID_SOCKET (int)(~0) # else # include @@ -575,6 +624,18 @@ static unsigned int _strlen31(const char *str) # define INVALID_SOCKET (-1) # endif /* INVALID_SOCKET */ # endif + +/* 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(__ultrix) @@ -629,16 +690,12 @@ extern char *sys_errlist[]; extern int sys_nerr; #elif defined(OPENSSL_SYS_OS2) && defined(__EMX__) # define strcasecmp stricmp # define strncasecmp strnicmp -#elif defined(OPENSSL_SYS_NETWARE) && defined(NETWARE_CLIB) -# define strcasecmp stricmp -# define strncasecmp strnicmp -#else -# ifdef NO_STRINGS_H - int strcasecmp(); - int strncasecmp(); -# else -# include -# endif /* NO_STRINGS_H */ +#elif defined(OPENSSL_SYS_NETWARE) +# include +# if defined(NETWARE_CLIB) +# define strcasecmp stricmp +# define strncasecmp strnicmp +# endif /* NETWARE_CLIB */ #endif #if defined(OPENSSL_SYS_OS2) && defined(__EMX__)