New Winsock2 patch series - now tested
Martin.Wilck at fujitsu-siemens.com
Tue Apr 23 12:39:03 CDT 2002
I will now start to submit a new series of patches for
Winsock2-related issues. Most of it is for overlapped IO, but there are
some other issues, too.
I have done a fair bit of testing with 16 and 32 bit network-oriented
Windows apps, and found no regressions (well some apps wouldn't install or
run with either the CVS version or my patched version of wine).
Among the tested apps are
- Opera (v5.12, 32bit, and 3.62, 16bit)
- FreeAgent (news reader, 16bit)
- Solstice Internet Mail (16bit)
- Hamster local news server (32bit, interesting because it's using
ReadFile()/WriteFile() for overlapped socket IO)
- My evil overlapped testing server/client app
I spotted a number of bugs with the "big" patch I sent to wine-devel last
Friday. These are fixed in the version I'll submit now.
The patch is now split into parts again (one bug fix for an earlier
patch of mine that is already in CVS, and 7 "real" parts).
Most of the testing has of course been done with the full patch set
applied. I have tried to separate logically independent units, but I
cannot swear that all is fine if only part of them is applied, and the
later patches do fix some important problems.
The main reason for splitting the stuff up is to make it easier for people
I honestly think that these patches are now ready for being applied to
CVS and tested in the field.
Here is the overall patch summary (for detailed explanantions see the
- Correct handling of deferred WSAAccept() operations,
- Change register_async() and the queue_async() method to allow more
flexibility, needed for sockets,
- Server support for overlapped IO on sockets,
- Fix problem with FD_CLOSE never being delivered in some situations,
- Wait for POLLIN if FD_CLOSE event notification is requested to catch
grateful close or shutdown by the peer (empty recv(), no POLLHUP),
- Implement overlapped WSARecvFrom()/WSASendTo()
- Change shutdown() to account for pending overlapped requests,
- Change ReadFile() semantics for overlapped reads on sockets (return
even if buffer is not yet full),
- Improve error reporting for asynchronous requests (files and sockets)
- Account for the SO_OPENTYPE socket option on a per-thread basis.
I plan to look into the regression-testing code and also supply a few
tests for the new socket functionality.
Cheers (and please test this stuff with your apps!),
Martin Wilck Phone: +49 5251 8 15113
Fujitsu Siemens Computers Fax: +49 5251 8 20409
Heinz-Nixdorf-Ring 1 mailto:Martin.Wilck at Fujitsu-Siemens.com
D-33106 Paderborn http://www.fujitsu-siemens.com/primergy
More information about the wine-devel