| Index: openssl/e_os.h
|
| ===================================================================
|
| --- openssl/e_os.h (revision 105093)
|
| +++ openssl/e_os.h (working copy)
|
| @@ -112,7 +112,7 @@
|
| /********************************************************************
|
| 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 @@
|
| #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
|
| @@ -180,6 +177,13 @@
|
| #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
|
| @@ -208,7 +212,7 @@
|
| #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
|
| @@ -254,19 +258,31 @@
|
| /*
|
| * 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>
|
| @@ -307,8 +323,8 @@
|
| /* 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])
|
| @@ -321,7 +337,7 @@
|
| # include <fcntl.h>
|
|
|
| # ifdef OPENSSL_SYS_WINCE
|
| -# include <winsock_extras.h>
|
| +# define OPENSSL_NO_POSIX_IO
|
| # endif
|
|
|
| # define ssize_t long
|
| @@ -334,12 +350,7 @@
|
| # 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
|
| @@ -360,7 +371,7 @@
|
| # define DEFAULT_HOME "C:"
|
| # endif
|
|
|
| -#else /* The non-microsoft world world */
|
| +#else /* The non-microsoft world */
|
|
|
| # ifdef OPENSSL_SYS_VMS
|
| # define VMS 1
|
| @@ -413,7 +424,6 @@
|
| extern int GetThreadID(void);
|
| /* # include <conio.h> */
|
| extern int kbhit(void);
|
| - extern void delay(unsigned milliseconds);
|
| # else
|
| # include <screen.h>
|
| # endif
|
| @@ -453,6 +463,10 @@
|
| # 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
|
| @@ -479,8 +493,19 @@
|
| # 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
|
| @@ -552,8 +577,10 @@
|
| # 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>
|
| @@ -596,6 +623,18 @@
|
| # 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,18 +668,6 @@
|
|
|
| /***********************************************/
|
|
|
| -/* 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
|
| @@ -702,6 +729,15 @@
|
| #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
|
|
|