On 9 Dec 2002, Martin Wilck wrote:
Hi Martin, All
Sorry, this is definitely wrong. Windows, just as Unix, returns WSAEADDRINUSE if SO_REUSEADDR isn't set (just tried it on W2k). There must be some special circumstances involved in those games the patch is supposed to fix. Perhaps they assume a certain Winsock implementation or Windows version.
yeah i am sure there are. also the dontroute stuff is a 100% evil hack. At least i got this time some attention :)
About the games: GPL is from 1998 and N2002 is from 2001/2002. They suffer both from the same problem - i guess they expect a behavior not a version.
I'd like to know what remote addresses exactly the apps call bind() for, and in what order. Perhaps there are subtle differences in the way EADDRINUSE and SO_REUSEADDR are handled.
I can basically describe you what this games do network-wise and/or i can provide you with traces (with and without patch) - what do you prefer? What i can not do is testing in windows.
However the patch implements the first behavior (ignore) whereas the Windows TCP/IP transport behaves as the second (later calls to getsockopt() refelect the SO_DONTROUTE settings, which seems to have no further effect).
So closer to windows would be store and ignore. In general i wonder, if windows does this always or if this depends somehow on the "device" the socket is finally bound to - or in other words: is always the same code on windows in charge or could it be that this might be implemened e.g. by a NIC driver.
Why i ask: please see my mail to wine-devel from 2002-10-25; the game also checks the .../NetTrans/... settings. Maybe here is something missing that tell the game to set SO_DONTROUTE. Wine does not set them automatically like other hardware/driver related stuff. I really can not imagine, why a game should set this option explicit when it connects to an server (the ip/name is entered manually in this case, so the game should expect the host not in the same network).
Please don't get me wrong: These issues need to be fixed, but please, not by applying hackish patches for special applications such as this one.
I think 100% the same way here.
Christoph: sorry I missed out on your previous mails to wine-devel. Next time, say something about sockets in the subject line and chances are I won't miss them again.
Yes you are right. At least the last mail had no single word about the network issues with this games in the subject. I will try to focus more on the real problem next time.
Thanx for your reply
CU!