Import OpenSSL 1.1.0f
This commit is contained in:
460
e_os.h
460
e_os.h
@@ -1,59 +1,10 @@
|
||||
/* e_os.h */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
/*
|
||||
* Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
* Licensed under the OpenSSL license (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
* in the file LICENSE in the source distribution or at
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
#ifndef HEADER_E_OS_H
|
||||
@@ -72,11 +23,38 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* Used to checking reference counts, most while doing perl5 stuff :-) */
|
||||
# ifdef REF_PRINT
|
||||
# undef REF_PRINT
|
||||
# define REF_PRINT(a,b) fprintf(stderr,"%08X:%4d:%s\n",(int)b,b->references,a)
|
||||
# if defined(OPENSSL_NO_STDIO)
|
||||
# if defined(REF_PRINT)
|
||||
# error "REF_PRINT requires stdio"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/*
|
||||
* BIO_printf format modifier for [u]int64_t.
|
||||
*/
|
||||
# if defined(__LP64__) || (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__==8)
|
||||
# define BIO_PRI64 "l" /* 'll' does work "universally", but 'l' is
|
||||
* here to shut -Wformat warnings in LP64... */
|
||||
# else
|
||||
# define BIO_PRI64 "ll"
|
||||
# endif
|
||||
|
||||
# if !defined(NDEBUG) && !defined(OPENSSL_NO_STDIO)
|
||||
# define REF_ASSERT_ISNT(test) \
|
||||
(void)((test) ? (OPENSSL_die("refcount error", __FILE__, __LINE__), 1) : 0)
|
||||
# else
|
||||
# define REF_ASSERT_ISNT(i)
|
||||
# endif
|
||||
# ifdef REF_PRINT
|
||||
# define REF_PRINT_COUNT(a, b) \
|
||||
fprintf(stderr, "%p:%4d:%s\n", b, b->references, a)
|
||||
# else
|
||||
# define REF_PRINT_COUNT(a, b)
|
||||
# endif
|
||||
|
||||
# define osslargused(x) (void)x
|
||||
# define OPENSSL_CONF "openssl.cnf"
|
||||
|
||||
# ifndef DEVRANDOM
|
||||
/*
|
||||
* set this to a comma-separated list of 'random' device files to try out. My
|
||||
@@ -84,9 +62,9 @@ extern "C" {
|
||||
*/
|
||||
# define DEVRANDOM "/dev/urandom","/dev/random","/dev/srandom"
|
||||
# endif
|
||||
# ifndef DEVRANDOM_EGD
|
||||
# if !defined(OPENSSL_NO_EGD) && !defined(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.
|
||||
*/
|
||||
@@ -99,33 +77,9 @@ 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
|
||||
# endif
|
||||
# define NO_SYS_PARAM_H
|
||||
# define NO_CHMOD
|
||||
# define NO_SYSLOG
|
||||
# undef DEVRANDOM
|
||||
# define GETPID_IS_MEANINGLESS
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/********************************************************************
|
||||
The Microsoft section
|
||||
********************************************************************/
|
||||
/*
|
||||
* 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
|
||||
# else
|
||||
# define MS_STATIC
|
||||
# endif
|
||||
|
||||
# if defined(OPENSSL_SYS_WIN32) && !defined(WIN32)
|
||||
# define WIN32
|
||||
# endif
|
||||
@@ -136,11 +90,12 @@ extern "C" {
|
||||
# define MSDOS
|
||||
# endif
|
||||
|
||||
# if defined(MSDOS) && !defined(GETPID_IS_MEANINGLESS)
|
||||
# if (defined(MSDOS) || defined(OPENSSL_SYS_UEFI)) && !defined(GETPID_IS_MEANINGLESS)
|
||||
# define GETPID_IS_MEANINGLESS
|
||||
# endif
|
||||
|
||||
# ifdef WIN32
|
||||
# define NO_SYS_UN_H
|
||||
# define get_last_sys_error() GetLastError()
|
||||
# define clear_sys_error() SetLastError(0)
|
||||
# if !defined(WINNT)
|
||||
@@ -158,17 +113,12 @@ extern "C" {
|
||||
# define writesocket(s,b,n) send((s),(b),(n),0)
|
||||
# elif defined(__DJGPP__)
|
||||
# define WATT32
|
||||
# define WATT32_NO_OLDIES
|
||||
# define get_last_socket_error() errno
|
||||
# define clear_socket_error() errno=0
|
||||
# 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
|
||||
@@ -183,32 +133,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
|
||||
# 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)
|
||||
# define writesocket(s,b,n) send((s),(b),(n),0)
|
||||
# endif
|
||||
# else
|
||||
# define get_last_socket_error() errno
|
||||
# define clear_socket_error() errno=0
|
||||
@@ -218,30 +142,20 @@ extern "C" {
|
||||
# define writesocket(s,b,n) write((s),(b),(n))
|
||||
# endif
|
||||
|
||||
# ifdef WIN16 /* never the case */
|
||||
# define MS_CALLBACK _far _loadds
|
||||
# define MS_FAR _far
|
||||
# else
|
||||
# define MS_CALLBACK
|
||||
# define MS_FAR
|
||||
# endif
|
||||
|
||||
# ifdef OPENSSL_NO_STDIO
|
||||
# undef OPENSSL_NO_FP_API
|
||||
# define OPENSSL_NO_FP_API
|
||||
# endif
|
||||
|
||||
# if (defined(WINDOWS) || defined(MSDOS))
|
||||
|
||||
# ifdef __DJGPP__
|
||||
# include <unistd.h>
|
||||
# include <sys/stat.h>
|
||||
# include <sys/socket.h>
|
||||
# include <sys/un.h>
|
||||
# include <tcp.h>
|
||||
# include <netdb.h>
|
||||
# define _setmode setmode
|
||||
# define _O_TEXT O_TEXT
|
||||
# define _O_BINARY O_BINARY
|
||||
# define HAS_LFN_SUPPORT(name) (pathconf((name), _PC_NAME_MAX) > 12)
|
||||
# undef DEVRANDOM_EGD /* Neither MS-DOS nor FreeDOS provide 'egd' sockets. */
|
||||
# undef DEVRANDOM
|
||||
# define DEVRANDOM "/dev/urandom\x24"
|
||||
# endif /* __DJGPP__ */
|
||||
@@ -264,20 +178,18 @@ 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 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 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.
|
||||
* routine that was introduced after denoted _WIN32_WINNT with
|
||||
* GetProcAddress(). Normally newer functions are masked with higher
|
||||
* _WIN32_WINNT in SDK headers. So that if you wish to use them in
|
||||
* some module, you'd need to override _WIN32_WINNT definition in
|
||||
* the target module in order to "reach for" prototypes, but replace
|
||||
* calls to new functions with indirect calls. Alternatively it
|
||||
* might be possible to achieve the goal by /DELAYLOAD-ing .DLLs
|
||||
* and check for current OS version instead.
|
||||
*/
|
||||
# define _WIN32_WINNT 0x0400
|
||||
# define _WIN32_WINNT 0x0501
|
||||
# endif
|
||||
# if !defined(OPENSSL_NO_SOCK) && (defined(_WIN32_WINNT) || defined(_WIN32_WCE))
|
||||
# if defined(_WIN32_WINNT) || defined(_WIN32_WCE)
|
||||
/*
|
||||
* Just like defining _WIN32_WINNT including winsock2.h implies
|
||||
* certain "discipline" for maintaining [broad] binary compatibility.
|
||||
@@ -351,14 +263,6 @@ extern FILE *_imp___iob;
|
||||
# define OPENSSL_NO_POSIX_IO
|
||||
# endif
|
||||
|
||||
# if defined (__BORLANDC__)
|
||||
# define _setmode setmode
|
||||
# define _O_TEXT O_TEXT
|
||||
# define _O_BINARY O_BINARY
|
||||
# define _int64 __int64
|
||||
# define _kbhit kbhit
|
||||
# endif
|
||||
|
||||
# define EXIT(n) exit(n)
|
||||
# define LIST_SEPARATOR_CHAR ';'
|
||||
# ifndef X_OK
|
||||
@@ -370,10 +274,6 @@ extern FILE *_imp___iob;
|
||||
# ifndef R_OK
|
||||
# define R_OK 4
|
||||
# endif
|
||||
# define OPENSSL_CONF "openssl.cnf"
|
||||
# define SSLEAY_CONF OPENSSL_CONF
|
||||
# define NUL_DEV "nul"
|
||||
# define RFILE ".rnd"
|
||||
# ifdef OPENSSL_SYS_WINCE
|
||||
# define DEFAULT_HOME ""
|
||||
# else
|
||||
@@ -403,11 +303,7 @@ extern FILE *_imp___iob;
|
||||
# else
|
||||
# include <unixlib.h>
|
||||
# endif
|
||||
# define OPENSSL_CONF "openssl.cnf"
|
||||
# define SSLEAY_CONF OPENSSL_CONF
|
||||
# define RFILE ".rnd"
|
||||
# define LIST_SEPARATOR_CHAR ','
|
||||
# define NUL_DEV "NLA0:"
|
||||
/* We don't have any well-defined random devices on VMS, yet... */
|
||||
# undef DEVRANDOM
|
||||
/*-
|
||||
@@ -423,47 +319,26 @@ extern FILE *_imp___iob;
|
||||
|
||||
So, what we do here is to change 0 to 1 to get the default success status,
|
||||
and everything else is shifted up to fit into the status number field, and
|
||||
the status is tagged as an error, which I believe is what is wanted here.
|
||||
the status is tagged as an error, which is what is wanted here.
|
||||
|
||||
Finally, we add the VMS C facility code 0x35a000, because there are some
|
||||
programs, such as Perl, that will reinterpret the code back to something
|
||||
POSIXly. 'man perlvms' explains it further.
|
||||
|
||||
NOTE: the perlvms manual wants to turn all codes 2 to 255 into success
|
||||
codes (status type = 1). I couldn't disagree more. Fortunately, the
|
||||
status type doesn't seem to bother Perl.
|
||||
-- Richard Levitte
|
||||
*/
|
||||
# define EXIT(n) do { int __VMS_EXIT = n; \
|
||||
if (__VMS_EXIT == 0) \
|
||||
__VMS_EXIT = 1; \
|
||||
else \
|
||||
__VMS_EXIT = (n << 3) | 2; \
|
||||
__VMS_EXIT |= 0x10000000; \
|
||||
exit(__VMS_EXIT); } while(0)
|
||||
# define NO_SYS_PARAM_H
|
||||
# define EXIT(n) exit((n) ? (((n) << 3) | 2 | 0x10000000 | 0x35a000) : 1)
|
||||
|
||||
# elif defined(OPENSSL_SYS_NETWARE)
|
||||
# include <fcntl.h>
|
||||
# include <unistd.h>
|
||||
# define NO_SYS_TYPES_H
|
||||
# undef DEVRANDOM
|
||||
# ifdef NETWARE_CLIB
|
||||
# define getpid GetThreadID
|
||||
extern int GetThreadID(void);
|
||||
/* # include <conio.h> */
|
||||
extern int kbhit(void);
|
||||
# else
|
||||
# include <screen.h>
|
||||
# endif
|
||||
# define NO_SYSLOG
|
||||
# define _setmode setmode
|
||||
# define _kbhit kbhit
|
||||
# define _O_TEXT O_TEXT
|
||||
# define _O_BINARY O_BINARY
|
||||
# define OPENSSL_CONF "openssl.cnf"
|
||||
# define SSLEAY_CONF OPENSSL_CONF
|
||||
# define RFILE ".rnd"
|
||||
# define LIST_SEPARATOR_CHAR ';'
|
||||
# define EXIT(n) { if (n) printf("ERROR: %d\n", (int)n); exit(n); }
|
||||
# define NO_SYS_PARAM_H
|
||||
# define NO_SYS_UN_H
|
||||
|
||||
# define DEFAULT_HOME "SYS$LOGIN:"
|
||||
|
||||
# else
|
||||
/* !defined VMS */
|
||||
# ifdef OPENSSL_SYS_MPE
|
||||
# define NO_SYS_PARAM_H
|
||||
# endif
|
||||
# ifdef OPENSSL_UNISTD
|
||||
# include OPENSSL_UNISTD
|
||||
# else
|
||||
@@ -472,49 +347,24 @@ extern int kbhit(void);
|
||||
# ifndef NO_SYS_TYPES_H
|
||||
# include <sys/types.h>
|
||||
# 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
|
||||
# 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 <io.h>
|
||||
# include <fcntl.h>
|
||||
# endif
|
||||
|
||||
# define OPENSSL_CONF "openssl.cnf"
|
||||
# define SSLEAY_CONF OPENSSL_CONF
|
||||
# define RFILE ".rnd"
|
||||
# define LIST_SEPARATOR_CHAR ':'
|
||||
# define NUL_DEV "/dev/null"
|
||||
# define EXIT(n) exit(n)
|
||||
# endif
|
||||
|
||||
# define SSLeay_getpid() getpid()
|
||||
|
||||
# endif
|
||||
|
||||
/*************/
|
||||
|
||||
# if defined(OPENSSL_NO_SOCK) && !defined(OPENSSL_NO_DGRAM)
|
||||
# define OPENSSL_NO_DGRAM
|
||||
# endif
|
||||
|
||||
# ifdef USE_SOCKETS
|
||||
# if defined(WINDOWS) || defined(MSDOS)
|
||||
# ifdef OPENSSL_NO_SOCK
|
||||
# elif defined(WINDOWS) || defined(MSDOS)
|
||||
/* windows world */
|
||||
|
||||
# ifdef OPENSSL_NO_SOCK
|
||||
# define SSLeay_Write(a,b,c) (-1)
|
||||
# define SSLeay_Read(a,b,c) (-1)
|
||||
# define SHUTDOWN(fd) close(fd)
|
||||
# define SHUTDOWN2(fd) close(fd)
|
||||
# elif !defined(__DJGPP__)
|
||||
# if !defined(__DJGPP__)
|
||||
# if defined(_WIN32_WCE) && _WIN32_WCE<410
|
||||
# define getservbyname _masked_declaration_getservbyname
|
||||
# endif
|
||||
@@ -532,53 +382,16 @@ struct servent *PASCAL getservbyname(const char *, const char *);
|
||||
/*
|
||||
* Even though sizeof(SOCKET) is 8, it's safe to cast it to int, because
|
||||
* the value constitutes an index in per-process table of limited size
|
||||
* and not a real pointer.
|
||||
* and not a real pointer. And we also depend on fact that all processors
|
||||
* Windows run on happen to be two's-complement, which allows to
|
||||
* interchange INVALID_SOCKET and -1.
|
||||
*/
|
||||
# define socket(d,t,p) ((int)socket(d,t,p))
|
||||
# define accept(s,f,l) ((int)accept(s,f,l))
|
||||
# endif
|
||||
# define SSLeay_Write(a,b,c) send((a),(b),(c),0)
|
||||
# define SSLeay_Read(a,b,c) recv((a),(b),(c),0)
|
||||
# define SHUTDOWN(fd) { shutdown((fd),0); closesocket(fd); }
|
||||
# define SHUTDOWN2(fd) { shutdown((fd),2); closesocket(fd); }
|
||||
# else
|
||||
# define SSLeay_Write(a,b,c) write_s(a,b,c,0)
|
||||
# define SSLeay_Read(a,b,c) read_s(a,b,c)
|
||||
# define SHUTDOWN(fd) close_s(fd)
|
||||
# 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
|
||||
*/
|
||||
# if defined(NETWARE_BSDSOCK)
|
||||
# include <sys/socket.h>
|
||||
# include <netinet/in.h>
|
||||
# include <sys/time.h>
|
||||
# if defined(NETWARE_CLIB)
|
||||
# include <sys/bsdskt.h>
|
||||
# else
|
||||
# include <sys/select.h>
|
||||
# endif
|
||||
# define INVALID_SOCKET (int)(~0)
|
||||
# else
|
||||
# include <novsock2.h>
|
||||
# endif
|
||||
# define SSLeay_Write(a,b,c) send((a),(b),(c),0)
|
||||
# define SSLeay_Read(a,b,c) recv((a),(b),(c),0)
|
||||
# define SHUTDOWN(fd) { shutdown((fd),0); closesocket(fd); }
|
||||
# define SHUTDOWN2(fd) { shutdown((fd),2); closesocket(fd); }
|
||||
|
||||
# else
|
||||
|
||||
# ifndef NO_SYS_PARAM_H
|
||||
@@ -586,8 +399,6 @@ struct servent *PASCAL getservbyname(const char *, const char *);
|
||||
# endif
|
||||
# ifdef OPENSSL_SYS_VXWORKS
|
||||
# include <time.h>
|
||||
# elif !defined(OPENSSL_SYS_MPE)
|
||||
# include <sys/time.h> /* Needed under linux for FD_XXX */
|
||||
# endif
|
||||
|
||||
# include <netdb.h>
|
||||
@@ -597,18 +408,22 @@ struct servent *PASCAL getservbyname(const char *, const char *);
|
||||
# include <inet.h>
|
||||
# else
|
||||
# include <sys/socket.h>
|
||||
# ifndef NO_SYS_UN_H
|
||||
# ifdef OPENSSL_SYS_VXWORKS
|
||||
# include <streams/un.h>
|
||||
# else
|
||||
# include <sys/un.h>
|
||||
# endif
|
||||
# ifndef UNIX_PATH_MAX
|
||||
# define UNIX_PATH_MAX sizeof(((struct sockaddr_un *)NULL)->sun_path)
|
||||
# endif
|
||||
# endif
|
||||
# ifdef FILIO_H
|
||||
# include <sys/filio.h> /* Added for FIONBIO under unixware */
|
||||
# include <sys/filio.h> /* FIONBIO in some SVR4, e.g. unixware, solaris */
|
||||
# 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>
|
||||
# include <sys/types.h>
|
||||
# include <arpa/inet.h>
|
||||
# include <netinet/tcp.h>
|
||||
# endif
|
||||
|
||||
# ifdef OPENSSL_SYS_AIX
|
||||
@@ -619,16 +434,12 @@ struct servent *PASCAL getservbyname(const char *, const char *);
|
||||
# include <sys/select.h>
|
||||
# endif
|
||||
|
||||
# if defined(__sun) || defined(sun)
|
||||
# include <sys/filio.h>
|
||||
# ifndef VMS
|
||||
# include <sys/ioctl.h>
|
||||
# else
|
||||
# ifndef VMS
|
||||
/* ioctl is only in VMS > 7.0 and when socketshr is not used */
|
||||
# if !defined(TCPIP_TYPE_SOCKETSHR) && defined(__VMS_VER) && (__VMS_VER > 70000000)
|
||||
# include <sys/ioctl.h>
|
||||
# else
|
||||
/* ioctl is only in VMS > 7.0 and when socketshr is not used */
|
||||
# if !defined(TCPIP_TYPE_SOCKETSHR) && defined(__VMS_VER) && (__VMS_VER > 70000000)
|
||||
# include <sys/ioctl.h>
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
@@ -639,10 +450,6 @@ struct servent *PASCAL getservbyname(const char *, const char *);
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# define SSLeay_Read(a,b,c) read((a),(b),(c))
|
||||
# define SSLeay_Write(a,b,c) write((a),(b),(c))
|
||||
# define SHUTDOWN(fd) { shutdown((fd),0); closesocket((fd)); }
|
||||
# define SHUTDOWN2(fd) { shutdown((fd),2); closesocket((fd)); }
|
||||
# ifndef INVALID_SOCKET
|
||||
# define INVALID_SOCKET (-1)
|
||||
# endif /* INVALID_SOCKET */
|
||||
@@ -652,7 +459,7 @@ struct servent *PASCAL getservbyname(const char *, const char *);
|
||||
* 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)
|
||||
# if defined(AF_INET6) && !defined(NETWARE_CLIB)
|
||||
# define OPENSSL_USE_IPV6 1
|
||||
# else
|
||||
# define OPENSSL_USE_IPV6 0
|
||||
@@ -661,22 +468,6 @@ struct servent *PASCAL getservbyname(const char *, const char *);
|
||||
|
||||
# endif
|
||||
|
||||
# if (defined(__sun) || defined(sun)) && !defined(__svr4__) && !defined(__SVR4)
|
||||
/* include headers first, so our defines don't break it */
|
||||
# include <stdlib.h>
|
||||
# include <string.h>
|
||||
/* bcopy can handle overlapping moves according to SunOS 4.1.4 manpage */
|
||||
# define memmove(s1,s2,n) bcopy((s2),(s1),(n))
|
||||
# define strtoul(s,e,b) ((unsigned long int)strtol((s),(e),(b)))
|
||||
extern char *sys_errlist[];
|
||||
extern int sys_nerr;
|
||||
# define strerror(errnum) \
|
||||
(((errnum)<0 || (errnum)>=sys_nerr) ? NULL : sys_errlist[errnum])
|
||||
/* Being signed SunOS 4.x memcpy breaks ASN1_OBJECT table lookup */
|
||||
# include "crypto/o_str.h"
|
||||
# define memcmp OPENSSL_memcmp
|
||||
# endif
|
||||
|
||||
# ifndef OPENSSL_EXIT
|
||||
# if defined(MONOLITH) && !defined(OPENSSL_C)
|
||||
# define OPENSSL_EXIT(n) return(n)
|
||||
@@ -687,40 +478,20 @@ extern int sys_nerr;
|
||||
|
||||
/***********************************************/
|
||||
|
||||
# define DG_GCC_BUG /* gcc < 2.6.3 on DGUX */
|
||||
|
||||
# ifdef sgi
|
||||
# define IRIX_CC_BUG /* all version of IRIX I've tested (4.* 5.*) */
|
||||
# endif
|
||||
# ifdef OPENSSL_SYS_SNI
|
||||
# define IRIX_CC_BUG /* CDS++ up to V2.0Bsomething suffered from
|
||||
* the same bug. */
|
||||
# endif
|
||||
|
||||
# if defined(OPENSSL_SYS_WINDOWS)
|
||||
# define strcasecmp _stricmp
|
||||
# define strncasecmp _strnicmp
|
||||
# elif defined(OPENSSL_SYS_VMS)
|
||||
/* VMS below version 7.0 doesn't have strcasecmp() */
|
||||
# include "o_str.h"
|
||||
# define strcasecmp OPENSSL_strcasecmp
|
||||
# define strncasecmp OPENSSL_strncasecmp
|
||||
# define OPENSSL_IMPLEMENTS_strncasecmp
|
||||
# elif defined(OPENSSL_SYS_OS2) && defined(__EMX__)
|
||||
# define strcasecmp stricmp
|
||||
# define strncasecmp strnicmp
|
||||
# elif defined(OPENSSL_SYS_NETWARE)
|
||||
# include <string.h>
|
||||
# if defined(NETWARE_CLIB)
|
||||
# define strcasecmp stricmp
|
||||
# define strncasecmp strnicmp
|
||||
# endif /* NETWARE_CLIB */
|
||||
# endif
|
||||
|
||||
# if defined(OPENSSL_SYS_OS2) && defined(__EMX__)
|
||||
# include <io.h>
|
||||
# include <fcntl.h>
|
||||
# define NO_SYSLOG
|
||||
# if (_MSC_VER >= 1310)
|
||||
# define open _open
|
||||
# define fdopen _fdopen
|
||||
# define close _close
|
||||
# ifndef strdup
|
||||
# define strdup _strdup
|
||||
# endif
|
||||
# define unlink _unlink
|
||||
# endif
|
||||
# else
|
||||
# include <strings.h>
|
||||
# endif
|
||||
|
||||
/* vxworks */
|
||||
@@ -750,30 +521,7 @@ 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
|
||||
|
||||
# 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
|
||||
#define OSSL_NELEM(x) (sizeof(x)/sizeof(x[0]))
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user