http://bugs.winehq.org/show_bug.cgi?id=31994
Erich Hoover erich.e.hoover@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1
--- Comment #39 from Erich Hoover erich.e.hoover@gmail.com --- (In reply to Bruno Jesus from comment #37)
Created attachment 48375 [details] another patch version
This is just an alternative patch that will accomplish the same goal from Erich's patch. I just tested the game with it and it worked for me. Erich, do you have any objections on your original patch for this? I think I can create some tests to prove it's OK.
Honestly, I forgot about this bug. The solution is kinda hacky, but I don't see a way to make that not be the case. You're certainly going to need to put together a test to convince AJ that this is necessary, but with a test I'm sure it'll go in just fine and get nominated for the "Most Stupid Win32 API Behavior" award ;) You probably need to test INADDR_BROADCAST and non-matching local broadcasts (bound to 192.168.0.1 but broadcast is 10.0.0.255), since it will probably only work for broadcasts that correspond to the interface that the socket is bound to.
As a side note, you should be able to change: if (manual_broadcast && wsa->addr && wsa->addr->sa_family == WS_AF_INET) to just: if (manual_broadcast) since you've simplified the code such that it's no longer doing unnecessary work ;)