X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=e_os.h;h=5068d1bd74feaa3acef2e73736937be7a97b8f7e;hb=d8e660a6dcbc15f53d526cb44c8659a3e59b24c1;hp=4d5e9f92a6ae3d99076b22dc858960e91721325b;hpb=7435d89edff30ca26ac890ec2ecd5daba9ab6630;p=oweals%2Fopenssl.git diff --git a/e_os.h b/e_os.h index 4d5e9f92a6..5068d1bd74 100644 --- a/e_os.h +++ b/e_os.h @@ -227,6 +227,7 @@ extern "C" { # define _setmode setmode # define _O_TEXT O_TEXT # define _O_BINARY O_BINARY +# undef DEVRANDOM # define DEVRANDOM "/dev/urandom\x24" # endif /* __DJGPP__ */ @@ -244,7 +245,7 @@ extern "C" { # define NO_DIRENT # ifdef WINDOWS -# ifndef _WIN32_WINNT +# if !defined(_WIN32_WCE) && !defined(_WIN32_WINNT) /* * Defining _WIN32_WINNT here in e_os.h implies certain "discipline." * Most notably we ought to check for availability of each specific @@ -265,6 +266,16 @@ extern "C" { # include # include # include +# ifdef _WIN64 +# define strlen(s) _strlen31(s) +/* cut strings to 2GB */ +static unsigned int _strlen31(const char *str) + { + unsigned int len=0; + while (*str && len<0x80000000U) str++, len++; + return len&0x7FFFFFFF; + } +# endif # include # endif # include @@ -425,6 +436,15 @@ extern "C" { # elif !defined(__DJGPP__) # include extern HINSTANCE _hInstance; +# ifdef _WIN64 +/* + * 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. + */ +# 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); } @@ -545,6 +565,9 @@ extern HINSTANCE _hInstance; 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