X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=e_os.h;h=965d1aa8d77136529149e147a7930219ee316058;hp=0b2b1cca67e5b0aa78c68eb39fbf8a4a4423f8de;hb=1875e6db29fb832d3cac101024ccb1f690b35028;hpb=0962fbbf98bfb4ef060dc6a54d11636f01706cd0 diff --git a/e_os.h b/e_os.h index 0b2b1cca67..965d1aa8d7 100644 --- a/e_os.h +++ b/e_os.h @@ -266,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 @@ -426,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); }