From: Amos Jeffries Date: Mon, 15 Sep 2014 00:53:05 +0000 (-0700) Subject: Windows: fix mapping between POSIX and Windows socket types X-Git-Tag: SQUID_3_5_0_1~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e7df1761e181bed11568ae2ce29c3ec7e0e9b7a5;p=thirdparty%2Fsquid.git Windows: fix mapping between POSIX and Windows socket types MinGW at least still defines several socket structure fields with size_t instead of socklen_t. In order to maintain the POSIX API definition in appearance we need to cast these types to their POSIX variant regardless of whether size_t or socklen_t is used. --- diff --git a/compat/os/mswindows.h b/compat/os/mswindows.h index 99e3aa1749..503885e205 100644 --- a/compat/os/mswindows.h +++ b/compat/os/mswindows.h @@ -527,7 +527,7 @@ accept(int s, struct sockaddr * a, socklen_t * l) } else return _open_osfhandle(result, 0); } -#define accept(s,a,l) Squid::accept(s,a,l) +#define accept(s,a,l) Squid::accept(s,a,reinterpret_cast(l)) inline int bind(int s, const struct sockaddr * n, socklen_t l) @@ -591,7 +591,7 @@ getsockname(int s, struct sockaddr * n, socklen_t * l) } else return 0; } -#define getsockname(s,a,l) Squid::getsockname(s,a,l) +#define getsockname(s,a,l) Squid::getsockname(s,a,reinterpret_cast(l)) inline int gethostname(char * n, size_t l) @@ -674,7 +674,7 @@ recvfrom(int s, void * b, size_t l, int f, struct sockaddr * fr, socklen_t * fl) } else return result; } -#define recvfrom(s,b,l,f,r,n) Squid::recvfrom(s,b,l,f,r,n) +#define recvfrom(s,b,l,f,r,n) Squid::recvfrom(s,b,l,f,r,reinterpret_cast(n)) inline int select(int n, fd_set * r, fd_set * w, fd_set * e, struct timeval * t) @@ -698,7 +698,7 @@ send(int s, const char * b, size_t l, int f) } else return result; } -#define send(s,b,l,f) Squid::send(s,b,l,f) +#define send(s,b,l,f) Squid::send(s,reinterpret_cast(b),l,f) inline ssize_t sendto(int s, const void * b, size_t l, int f, const struct sockaddr * t, socklen_t tl)