X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=e_os.h;h=eafa8623aabe4ca009c254353636e0310d2add36;hp=41ab7bb8d1d95d9699a04980d1f3eeec4a27f4a0;hb=ff4952896ec4383a107bbe94001ca0a64ff47433;hpb=8731a4fcd267d56cab2ad6d7cfac2c846c413a5d diff --git a/e_os.h b/e_os.h index 41ab7bb8d1..eafa8623aa 100644 --- a/e_os.h +++ b/e_os.h @@ -1,58 +1,10 @@ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * 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. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * 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,17 +24,14 @@ extern "C" { /* Used to checking reference counts, most while doing perl5 stuff :-) */ # if defined(OPENSSL_NO_STDIO) -# if defined(REF_DEBUG) -# error "REF_DEBUG requires stdio" -# endif # if defined(REF_PRINT) # error "REF_PRINT requires stdio" # endif # endif -# if defined(REF_DEBUG) +# if !defined(NDEBUG) && !defined(OPENSSL_NO_STDIO) # define REF_ASSERT_ISNT(test) \ - (void)((test) ? (OpenSSLDie(__FILE__, __LINE__, "refcount error"), 1) : 0) + (void)((test) ? (OPENSSL_die("refcount error", __FILE__, __LINE__), 1) : 0) # else # define REF_ASSERT_ISNT(i) # endif @@ -94,6 +43,7 @@ extern "C" { # endif # define osslargused(x) (void)x +# define OPENSSL_CONF "openssl.cnf" # ifndef DEVRANDOM /* @@ -153,6 +103,7 @@ 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) @@ -172,25 +123,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_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 @@ -206,11 +138,14 @@ extern "C" { # include # include # include +# include # include # include # 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__ */ @@ -244,7 +179,7 @@ extern "C" { */ # 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. @@ -318,14 +253,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 @@ -337,9 +264,6 @@ extern FILE *_imp___iob; # ifndef R_OK # define R_OK 4 # endif -# define OPENSSL_CONF "openssl.cnf" -# define NUL_DEV "nul" -# define RFILE ".rnd" # ifdef OPENSSL_SYS_WINCE # define DEFAULT_HOME "" # else @@ -369,10 +293,7 @@ extern FILE *_imp___iob; # else # include # endif -# define OPENSSL_CONF "openssl.cnf" -# 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 /*- @@ -404,28 +325,7 @@ extern FILE *_imp___iob; # define NO_SYS_PARAM_H # define NO_SYS_UN_H -# elif defined(OPENSSL_SYS_NETWARE) -# include -# include -# define NO_SYS_TYPES_H -# 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 -# define _kbhit kbhit -# define _O_TEXT O_TEXT -# define _O_BINARY O_BINARY -# define OPENSSL_CONF "openssl.cnf" -# define RFILE ".rnd" -# define LIST_SEPARATOR_CHAR ';' -# define EXIT(n) { if (n) printf("ERROR: %d\n", (int)n); exit(n); } +# define DEFAULT_HOME "SYS$LOGIN:" # else /* !defined VMS */ @@ -442,31 +342,19 @@ extern int kbhit(void); # include # endif -# define OPENSSL_CONF "openssl.cnf" -# define RFILE ".rnd" # define LIST_SEPARATOR_CHAR ':' -# define NUL_DEV "/dev/null" # define EXIT(n) exit(n) # endif -# define OpenSSL_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 OpenSSL_Write(a,b,c) (-1) -# define OpenSSL_Read(a,b,c) (-1) -# elif !defined(__DJGPP__) +# if !defined(__DJGPP__) # if defined(_WIN32_WCE) && _WIN32_WCE<410 # define getservbyname _masked_declaration_getservbyname # endif @@ -491,34 +379,8 @@ struct servent *PASCAL getservbyname(const char *, const char *); # define socket(d,t,p) ((int)socket(d,t,p)) # define accept(s,f,l) ((int)accept(s,f,l)) # endif -# define OpenSSL_Write(a,b,c) send((a),(b),(c),0) -# define OpenSSL_Read(a,b,c) recv((a),(b),(c),0) -# else -# define OpenSSL_Write(a,b,c) write_s(a,b,c,0) -# define OpenSSL_Read(a,b,c) read_s(a,b,c) -# endif - -# elif defined(OPENSSL_SYS_NETWARE) - /* - * NetWare uses the WinSock2 interfaces by default, but can be - * configured for BSD - */ -# if defined(NETWARE_BSDSOCK) -# include -# include -# include -# include -# if defined(NETWARE_CLIB) -# include -# else -# include -# endif -# define INVALID_SOCKET (int)(~0) # else -# include # endif -# define OpenSSL_Write(a,b,c) send((a),(b),(c),0) -# define OpenSSL_Read(a,b,c) recv((a),(b),(c),0) # else @@ -578,8 +440,6 @@ struct servent *PASCAL getservbyname(const char *, const char *); # endif # endif -# define OpenSSL_Read(a,b,c) read((a),(b),(c)) -# define OpenSSL_Write(a,b,c) write((a),(b),(c)) # ifndef INVALID_SOCKET # define INVALID_SOCKET (-1) # endif /* INVALID_SOCKET */ @@ -611,27 +471,17 @@ struct servent *PASCAL getservbyname(const char *, const char *); # 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 "internal/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 -# if defined(NETWARE_CLIB) -# define strcasecmp stricmp -# define strncasecmp strnicmp -# endif /* NETWARE_CLIB */ -# endif - -# if defined(OPENSSL_SYS_OS2) && defined(__EMX__) -# include -# include -# 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 # endif /* vxworks */