These two bugs are related specifically to Warcraft 3 running under Wine. Wine's AcceptEx implementation is still partially stubbed out, but it works well enough to pass most sanity checks. However, this causes issues with hosting games. The second bug is a timeout issue; it manifests itself when you try to join a game where the host hasn't configured his router properly to do port forwarding, and your SYN packets are silently dropped. Warcraft will sit there for as much as 5 minutes before returning control to the user. The only remedy other than waiting is to forcibly terminate wine and restart warcraft 3. Reproducible: Always
Created attachment 138863 [details, diff] Disable IOCP since it isn't implemented properly yet This patch disables IOCP functionality because AcceptEx isn't implemented properly. An initial attempt is already in Wine, but it is incomplete. This patch is needed to disable it until the support is completed.
Created attachment 138864 [details] Wake up select ;) This patch will fix the 5-minute TCP timeout experienced when trying to connect to a mis-configured host in Warcraft 3.
Related bug reports: http://bugs.winehq.com/show_bug.cgi?id=4619 http://bugs.winehq.com/show_bug.cgi?id=9787 completion_disable will cause IOCP calls to return an error, which should cause the application to fall back on more primitive system calls (which should work). This patch will hopefully be deprecated soon when AcceptEx is completed. wakeup_select fixes the 5-minute timeout; the bug report claims that the problem was fixed, but it is still present to this day.
i'll only add fixes that have been committed to the upstream git repo. please tell me which ones those are. then again, adding any such patches is dubious now that wine is doing one or two releases a month ...
The IOCP patch reverts from the current buggy behaviour to the old, working behaviour. This will never be committed upstream, since it removes (non-working) functionality that has been added. When the AcceptEx implementation is complete this patch will be useless and should be removed, but for now it should be included I think. The wakeup_select patch was apparently "fixed" somehow without using this patch.
i dont see either of those changes in the upstream git repo which means i'm not going to add them ... the wine maintainers dont have enough man power to allow for such local patches, so until that happens, wine in portage really only tracks what's going on upstream sorry