diff options
author | marha <marha@users.sourceforge.net> | 2010-03-30 12:36:28 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-03-30 12:36:28 +0000 |
commit | ff48c0d9098080b51ea12710029135916d117806 (patch) | |
tree | 96e6af9caf170ba21a1027b24e306a07e27d7b75 /openssl/e_os.h | |
parent | bb731f5ac92655c4860a41fa818a7a63005f8369 (diff) | |
download | vcxsrv-ff48c0d9098080b51ea12710029135916d117806.tar.gz vcxsrv-ff48c0d9098080b51ea12710029135916d117806.tar.bz2 vcxsrv-ff48c0d9098080b51ea12710029135916d117806.zip |
svn merge -r514:HEAD ^/branches/released .
Diffstat (limited to 'openssl/e_os.h')
-rw-r--r-- | openssl/e_os.h | 104 |
1 files changed, 70 insertions, 34 deletions
diff --git a/openssl/e_os.h b/openssl/e_os.h index 9c5c6fdb9..0f4b7994f 100644 --- a/openssl/e_os.h +++ b/openssl/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 @@ -123,9 +123,6 @@ extern "C" { #if defined(OPENSSL_SYS_WIN32) && !defined(WIN32) # define WIN32 #endif -#if defined(OPENSSL_SYS_WIN16) && !defined(WIN16) -# define WIN16 -#endif #if defined(OPENSSL_SYS_WINDOWS) && !defined(WINDOWS) # define WINDOWS #endif @@ -181,6 +178,13 @@ 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 @@ -209,7 +213,7 @@ extern "C" { #define writesocket(s,b,n) write((s),(b),(n)) #endif -#ifdef WIN16 +#ifdef WIN16 /* never the case */ # define MS_CALLBACK _far _loadds # define MS_FAR _far #else @@ -255,19 +259,31 @@ extern "C" { /* * Defining _WIN32_WINNT here in e_os.h implies certain "discipline." * Most notably we ought to check for availability of each specific - * routine with GetProcAddress() and/or quard NT-specific calls with + * routine with GetProcAddress() and/or guard NT-specific calls with * GetVersion() < 0x80000000. One can argue that in latter "or" case * we ought to /DELAYLOAD some .DLLs in order to protect ourselves * against run-time link errors. This doesn't seem to be necessary, * because it turned out that already Windows 95, first non-NT Win32 * implementation, is equipped with at least NT 3.51 stubs, dummy * routines with same name, but which do nothing. Meaning that it's - * apparently appropriate to guard generic NT calls with GetVersion - * alone, while NT 4.0 and above calls ought to be additionally - * checked upon with GetProcAddress. + * apparently sufficient to guard "vanilla" NT calls with GetVersion + * alone, while NT 4.0 and above interfaces ought to be linked with + * GetProcAddress at run-time. */ # define _WIN32_WINNT 0x0400 # endif +# if !defined(OPENSSL_NO_SOCK) && defined(_WIN32_WINNT) + /* + * Just like defining _WIN32_WINNT including winsock2.h implies + * 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 <winsock2.h> +# include <ws2tcpip.h> + /* yes, they have to be #included prior to <windows.h> */ +# endif # include <windows.h> # include <stdio.h> # include <stddef.h> @@ -308,8 +324,8 @@ static unsigned int _strlen31(const char *str) /* 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'. + * but without /MD results in LINK warning LNK4049: + * 'locally defined symbol "__iob" imported'. */ extern FILE *_imp___iob; # define stdin (&_imp___iob[0]) @@ -322,7 +338,7 @@ static unsigned int _strlen31(const char *str) # include <fcntl.h> # ifdef OPENSSL_SYS_WINCE -# include <winsock_extras.h> +# define OPENSSL_NO_POSIX_IO # endif # define ssize_t long @@ -335,12 +351,7 @@ static unsigned int _strlen31(const char *str) # define _kbhit kbhit # endif -# if defined(WIN16) && defined(SSLEAY) && defined(_WINEXITNOPERSIST) -# define EXIT(n) _wsetexit(_WINEXITNOPERSIST) -# define OPENSSL_EXIT(n) do { if (n == 0) EXIT(n); return(n); } while(0) -# else -# define EXIT(n) exit(n) -# endif +# define EXIT(n) exit(n) # define LIST_SEPARATOR_CHAR ';' # ifndef X_OK # define X_OK 0 @@ -361,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 @@ -414,7 +425,6 @@ static unsigned int _strlen31(const char *str) extern int GetThreadID(void); /* # include <conio.h> */ extern int kbhit(void); - extern void delay(unsigned milliseconds); # else # include <screen.h> # endif @@ -454,6 +464,10 @@ static unsigned int _strlen31(const char *str) # define setvbuf(a, b, c, d) setbuffer((a), (b), (d)) typedef unsigned long clock_t; # endif +# ifdef OPENSSL_SYS_WIN32_CYGWIN +# include <io.h> +# include <fcntl.h> +# endif # define OPENSSL_CONF "openssl.cnf" # define SSLEAY_CONF OPENSSL_CONF @@ -480,8 +494,19 @@ static unsigned int _strlen31(const char *str) # define SHUTDOWN(fd) close(fd) # define SHUTDOWN2(fd) close(fd) # elif !defined(__DJGPP__) -# include <winsock.h> -extern HINSTANCE _hInstance; +# if defined(_WIN32_WCE) && _WIN32_WCE<410 +# define getservbyname _masked_declaration_getservbyname +# endif +# if !defined(IPPROTO_IP) + /* winsock[2].h was included already? */ +# include <winsock.h> +# endif +# ifdef getservbyname +# undef getservbyname + /* this is used to be wcecompat/include/winsock_extras.h */ + struct servent* PASCAL getservbyname(const char*,const char*); +# endif + # ifdef _WIN64 /* * Even though sizeof(SOCKET) is 8, it's safe to cast it to int, because @@ -553,8 +578,10 @@ extern HINSTANCE _hInstance; # include <sys/filio.h> /* Added for FIONBIO under unixware */ # endif # include <netinet/in.h> +# if !defined(OPENSSL_SYS_BEOS_R5) # include <arpa/inet.h> # endif +# endif # if defined(NeXT) || defined(_NEXT_SOURCE) # include <sys/fcntl.h> @@ -597,6 +624,18 @@ extern HINSTANCE _hInstance; # 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) @@ -630,18 +669,6 @@ extern char *sys_errlist[]; extern int sys_nerr; /***********************************************/ -/* do we need to do this for getenv. - * Just define getenv for use under windows */ - -#ifdef WIN16 -/* How to do this needs to be thought out a bit more.... */ -/*char *GETENV(char *); -#define Getenv GETENV*/ -#define Getenv getenv -#else -#define Getenv getenv -#endif - #define DG_GCC_BUG /* gcc < 2.6.3 on DGUX */ #ifdef sgi @@ -703,6 +730,15 @@ 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 <OS.h> +#endif + + #ifdef __cplusplus } #endif |