From 6bc61f63f1e0ad20ab09f881d6968558eba9a8e6 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Mon, 25 Feb 2019 22:30:01 +0100 Subject: [PATCH] [MSAFD] Implement socket options SO_SNDBUF and SO_RCVBUF --- dll/win32/msafd/misc/dllmain.c | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/dll/win32/msafd/misc/dllmain.c b/dll/win32/msafd/misc/dllmain.c index c761cff13ed..520cf1a3ce1 100644 --- a/dll/win32/msafd/misc/dllmain.c +++ b/dll/win32/msafd/misc/dllmain.c @@ -2866,8 +2866,21 @@ WSPSetSockOpt( return SOCKET_ERROR; } - /* TODO: The total per-socket buffer space reserved for sends */ - ERR("Setting send buf to %x is not implemented yet\n", optval); + SetSocketInformation(Socket, + AFD_INFO_SEND_WINDOW_SIZE, + NULL, + (PULONG)optval, + NULL, + NULL, + NULL); + GetSocketInformation(Socket, + AFD_INFO_SEND_WINDOW_SIZE, + NULL, + &Socket->SharedData->SizeOfSendBuffer, + NULL, + NULL, + NULL); + return NO_ERROR; case SO_RCVBUF: @@ -2877,8 +2890,21 @@ WSPSetSockOpt( return SOCKET_ERROR; } - /* TODO: The total per-socket buffer space reserved for receives */ - ERR("Setting receive buf to %x is not implemented yet\n", optval); + SetSocketInformation(Socket, + AFD_INFO_RECEIVE_WINDOW_SIZE, + NULL, + (PULONG)optval, + NULL, + NULL, + NULL); + GetSocketInformation(Socket, + AFD_INFO_RECEIVE_WINDOW_SIZE, + NULL, + &Socket->SharedData->SizeOfSendBuffer, + NULL, + NULL, + NULL); + return NO_ERROR; case SO_ERROR: