http://bugs.winehq.org/show_bug.cgi?id=29168
--- Comment #74 from Agifem agifem@free.fr 2012-01-04 02:58:58 CST --- I've been looking at it more and more closely for the past few days, and I still think the problem is, like was observed earlier, in the socket. More precisely, in the WS2_async_recv function.
In Xolotl's trace from 23rd december, we can see how Wine interprets differently two calls to WS2_async_recv : The first one, called with a status of 257, Wine reads 22 bytes of data, and returns. The second one, called with a status of 0, Wine doesn't seem to even try reading, and returns. Although both return with the same status, I can't help thinking the second case is doing something wrong, for example failing to initialize a data buffer, one that the game would be puzzled to find as a return value.
Also, but it's probably my lack of knowledge of the inner workings of Wine, why is the WS2_async_recv called with a status as a parameter ? It doesn't make much sense to me.