http://bugs.winehq.org/show_bug.cgi?id=12302
--- Comment #31 from Andreas Blochberger andreas@blochberger.net 2008-05-11 10:33:08 --- After looking at the source in socket.c i think there must be something wrong. It seems, that the lotro client is using non-blocking sockets to read data. But in my logs i didn't find any successful call to WSARecvFrom. It's been a long time ago, since i had to bother with windows IP communication, so i am not that firm in that area. here is the log for one call: trace:winsock:WSARecvFrom socket 018c, wsabuf 0x7bbfe90c, nbufs 1, flags 0, from 0x212b8c8, fromlen 16, ovl (nil), func (nil) trace:winsock:WSARecvFrom fd=76, options=0 warn:winsock:WSARecvFrom -> ERROR 10035
The socket is created this way: trace:winsock:WSASocketW af=2 type=2 protocol=0 protocol_info=(nil) group=0 flags=0x1
There is a fixme in that function, but in this case, the only flag given is WSA_FLAG_OVERLAPPED
So, lotro calls WSARecvFrom on an overlapped socket without providing an lpOverlapped structure. Maybe this is the reason, why lotro sends out so mayn packets, because it thinks, it didn't receive an answer, though it did... but that#s just wild speculation...