[PATCH] ws2_32: Ignore small SNDBUF values

Hans Leidekker hans at codeweavers.com
Fri Nov 16 07:49:09 CST 2018


On Fri, 2018-11-16 at 03:40 +0000, Alistair Leslie-Hughes wrote:
> From: Sebastian Lackner <sebastian at fds-team.de>
> 
> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40264
> Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
> ---
>  dlls/ws2_32/socket.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
> index df068fe..ee265d6 100644
> --- a/dlls/ws2_32/socket.c
> +++ b/dlls/ws2_32/socket.c
> @@ -5809,9 +5809,10 @@ int WINAPI WS_setsockopt(SOCKET s, int level, int optname,
>              break;
>  
>          case WS_SO_RCVBUF:
> +        case WS_SO_SNDBUF:
>              if (*(const int*)optval < 2048)
>              {
> -                WARN("SO_RCVBF for %d bytes is too small: ignored\n", *(const int*)optval );
> +                WARN("SO_RCVBF/WS_SO_SNDBUF for %d bytes is too small: ignored\n", *(const int*)optval );
>                  return 0;

That bug is about macOS rejecting setsockopt(SO_SNDBUF) with 0 buffer
size. This is supposed to disable send buffering on Windows but macOS
doesn't support that (nor does Linux, it sets a default value in this
case).

I think it would be better to print a fixme for this specific value and
then return early only on macOS, to avoid the error from setsockopt.




More information about the wine-devel mailing list