[MSAFD] Implement socket options SO_SNDBUF and SO_RCVBUF
authorPierre Schweitzer <pierre@reactos.org>
Mon, 25 Feb 2019 21:30:01 +0000 (22:30 +0100)
committerPierre Schweitzer <pierre@reactos.org>
Mon, 25 Feb 2019 21:34:29 +0000 (22:34 +0100)
dll/win32/msafd/misc/dllmain.c

index c761cff..520cf1a 100644 (file)
@@ -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: