From: Andy Polyakov Date: Tue, 30 Dec 2008 13:30:57 +0000 (+0000) Subject: Backport http://cvs.openssl.org/chngview?cn=17710 from HEAD. X-Git-Tag: OpenSSL_0_9_8j~6 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f17c45611e4c96df01e5664ad7ed52ec621dda41;p=oweals%2Fopenssl.git Backport cvs.openssl.org/chngview?cn=17710 from HEAD. PR: 1230 --- diff --git a/crypto/bio/bss_file.c b/crypto/bio/bss_file.c index 4df9927c43..9ad46fa081 100644 --- a/crypto/bio/bss_file.c +++ b/crypto/bio/bss_file.c @@ -279,7 +279,7 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr) #endif { #if defined(OPENSSL_SYS_WINDOWS) - int fd = fileno((FILE*)ptr); + int fd = _fileno((FILE*)ptr); if (num & BIO_FP_TEXT) _setmode(fd,_O_TEXT); else diff --git a/crypto/des/enc_read.c b/crypto/des/enc_read.c index c70fb686b8..e7da2ec66b 100644 --- a/crypto/des/enc_read.c +++ b/crypto/des/enc_read.c @@ -147,7 +147,11 @@ int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched, /* first - get the length */ while (net_num < HDRSIZE) { +#ifndef _WIN32 i=read(fd,(void *)&(net[net_num]),HDRSIZE-net_num); +#else + i=_read(fd,(void *)&(net[net_num]),HDRSIZE-net_num); +#endif #ifdef EINTR if ((i == -1) && (errno == EINTR)) continue; #endif diff --git a/crypto/des/enc_writ.c b/crypto/des/enc_writ.c index af5b8c2349..c2f032c9a6 100644 --- a/crypto/des/enc_writ.c +++ b/crypto/des/enc_writ.c @@ -153,7 +153,11 @@ int DES_enc_write(int fd, const void *_buf, int len, { /* eay 26/08/92 I was not doing writing from where we * got up to. */ +#ifndef _WIN32 i=write(fd,(void *)&(outbuf[j]),outnum-j); +#else + i=_write(fd,(void *)&(outbuf[j]),outnum-j); +#endif if (i == -1) { #ifdef EINTR diff --git a/crypto/ocsp/ocsp_ht.c b/crypto/ocsp/ocsp_ht.c index 4a04ad9aa6..6abb30b2c0 100644 --- a/crypto/ocsp/ocsp_ht.c +++ b/crypto/ocsp/ocsp_ht.c @@ -56,11 +56,12 @@ * */ -#include #include #include #include #include +#include "e_os.h" +#include #include #include #include diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c index 61fb3e9809..d108353bbc 100644 --- a/crypto/rand/randfile.c +++ b/crypto/rand/randfile.c @@ -81,6 +81,13 @@ # include #endif +#ifdef _WIN32 +#define stat _stat +#define chmod _chmod +#define open _open +#define fdopen _fdopen +#endif + #undef BUFSIZE #define BUFSIZE 1024 #define RAND_DATA 1024 diff --git a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c index 1f23a45a33..ef930bf247 100644 --- a/crypto/ui/ui_openssl.c +++ b/crypto/ui/ui_openssl.c @@ -677,6 +677,8 @@ static int noecho_fgets(char *buf, int size, FILE *tty) size--; #ifdef WIN16TTY i=_inchar(); +#elif defined(_WIN32) + i=_getch(); #else i=getch(); #endif diff --git a/crypto/x509/by_dir.c b/crypto/x509/by_dir.c index 37f9a48206..341e0ba6a4 100644 --- a/crypto/x509/by_dir.c +++ b/crypto/x509/by_dir.c @@ -74,6 +74,10 @@ #include #include +#ifdef _WIN32 +#define stat _stat +#endif + typedef struct lookup_dir_st { BUF_MEM *buffer; diff --git a/e_os.h b/e_os.h index acc6a15eb7..9c5c6fdb92 100644 --- a/e_os.h +++ b/e_os.h @@ -269,6 +269,7 @@ extern "C" { # define _WIN32_WINNT 0x0400 # endif # include +# include # include # include # include @@ -284,13 +285,38 @@ static unsigned int _strlen31(const char *str) # endif # include # if defined(_MSC_VER) && _MSC_VER<=1200 && defined(_MT) && defined(isspace) - /* compensate for bug is VC6 ctype.h */ + /* 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 diff --git a/engines/e_aep.c b/engines/e_aep.c index ffdc354cdc..e24e4b424e 100644 --- a/engines/e_aep.c +++ b/engines/e_aep.c @@ -867,10 +867,12 @@ static AEP_RV aep_get_connection(AEP_CONNECTION_HNDL_PTR phConnection) CRYPTO_w_lock(CRYPTO_LOCK_ENGINE); -#ifndef NETWARE_CLIB - curr_pid = getpid(); -#else +#ifdef NETWARE_CLIB curr_pid = GetThreadID(); +#elif defined(_WIN32) + curr_pid = _getpid(); +#else + curr_pid = getpid(); #endif /*Check if this is the first time this is being called from the current