https://bugs.winehq.org/show_bug.cgi?id=8606
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|patch | CC| |00cpxxx@gmail.com
--- Comment #36 from Bruno Jesus 00cpxxx@gmail.com --- This is a kernel trap. The game is doing setsockopt(SO_SNDBUF, 65536) but as stated in the docs the (linux) kernel will double the value and when asked for the size with getsockopt(SO_SNDBUF) it will return 131072. This makes the game very sad because the comparison is probably != instead of >=
By dividing the value from getsockopt by 2 the game will be happy and will attempt to connect to Novaworld and ask for an update. Unfortunately the ftp is no longer active (at least for me) and then the update process will sit forever waiting.
See SO_SNDBUF at http://man7.org/linux/man-pages/man7/socket.7.html
It's possible to fix this by storing the requested buffer size in the wineserver socket object. Then we would do the getsockopt and return the min() from what wineserver has and getsockopt returned.