New Winsock2 patch series - now tested

Martin Wilck Martin.Wilck at fujitsu-siemens.com
Tue Apr 23 12:39:03 CDT 2002


Hi,

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
to review.

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
patches thenmselves):

- 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()
  and WSAGetOverlappedResult(),
- 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

-- 
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 mailing list