Fix incorrect control buffer length when filling WSAMSG
for WSARecvMsg
#379
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Somehow, this bug causes problems with listen sockets on Windows 11 platform.
After some number of client connections being abruptly terminated (e.g. client has crashed), the host just stops to invoke connection state change callbacks for the still opened listen socket.
In this particular case,
WSARecvMsg
always returns -1 (SOCKET_ERROR) andWSAGetLastError()
returns 10014 (WSAEFAULT), which indicates there's a problem with function arguments.So, it seems, that in some cases Windows will try to use the control data, but if there's been some problem with it, the connection will just remain in the broken state forever.