[Bug 11640] New: Unable to use multiplayer in Sins of a Solar Empire: WSAIoctl unsupported WS_IOCTL cmd 98000004 + unknown address family
http://bugs.winehq.org/show_bug.cgi?id=11640 Summary: Unable to use multiplayer in Sins of a Solar Empire: WSAIoctl unsupported WS_IOCTL cmd 98000004 + unknown address family Product: Wine Version: 0.9.55. Platform: Other OS/Version: other Status: NEW Severity: enhancement Priority: P2 Component: winsock AssignedTo: wine-bugs(a)winehq.org ReportedBy: scott(a)open-vote.org Using Sins of a Solar Empire, neither hosting nor joining a multiplayer game works. I get the following fixmes when clicking the host button and another player attempts to join: fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:ws_sockaddr_u2ws Unknown address family 6408 fixme:winsock:ws_sockaddr_u2ws Unknown address family 16 fixme:winsock:ws_sockaddr_u2ws Unknown address family 17282 fixme:winsock:ws_sockaddr_u2ws Unknown address family 16 fixme:winsock:ws_sockaddr_u2ws Unknown address family 16 fixme:winsock:ws_sockaddr_u2ws Unknown address family 1 fixme:winsock:ws_sockaddr_u2ws Unknown address family 1 fixme:winsock:ws_sockaddr_u2ws Unknown address family 1 fixme:winsock:ws_sockaddr_u2ws Unknown address family 1 fixme:winsock:ws_sockaddr_u2ws Unknown address family 53136 fixme:winsock:ws_sockaddr_u2ws Unknown address family 16 fixme:winsock:ws_sockaddr_u2ws Unknown address family 53136 fixme:winsock:ws_sockaddr_u2ws Unknown address family 53136 -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 Christian STurm <athaba(a)inode.at> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |athaba(a)inode.at --- Comment #1 from Christian STurm <athaba(a)inode.at> 2008-03-08 07:57:33 --- I'm getting (nearly) the same (wine-0.9.56): fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:ws_sockaddr_u2ws Unknown address family 1 fixme:winsock:ws_sockaddr_u2ws Unknown address family 62996 fixme:winsock:ws_sockaddr_u2ws Unknown address family 62996 fixme:winsock:ws_sockaddr_u2ws Unknown address family 62996 fixme:winsock:ws_sockaddr_u2ws Unknown address family 48827 fixme:winsock:ws_sockaddr_u2ws Unknown address family 2314 If you join a multiplayergame the hoster can see you. If you get kicked you can use all the buttons again. The game/menu works again. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #2 from Jeff Zaroyko <jeffzaroyko(a)gmail.com> 2008-03-21 21:49:11 --- It looks like connected udp sockets are not catered to in ws_sockaddr_u2ws after being called in WS2_recv. The msghdr struct contains a member msg_namelen which is zero when msg_name is not set after recv is called. This is the reason for the fixme's being printed, as a switch statement switches on uninitialized data. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #3 from Jeff Zaroyko <jeffzaroyko(a)gmail.com> 2008-03-22 05:52:30 --- It appears that the demo for this doesn't have multiplayer. Scott, can you please attach a +winsock log? -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #4 from Christian Sturm <athaba(a)inode.at> 2008-03-22 06:40:57 --- I'm not Scott, but maybe this helps too. There are a lot of these: trace:winsock:WSASendTo socket 00d0, wsabuf 0x33fc5c, nbufs 1, flags 0, to (nil), tolen 0, ovl (nil), func (nil) trace:winsock:WSASendTo fd=55, options=0 trace:winsock:WSASendTo -> 0 bytes -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #5 from Jeff Zaroyko <jeffzaroyko(a)gmail.com> 2008-03-22 07:06:23 --- (In reply to comment #4)
I'm not Scott, but maybe this helps too. There are a lot of these: trace:winsock:WSASendTo socket 00d0, wsabuf 0x33fc5c, nbufs 1, flags 0, to (nil), tolen 0, ovl (nil), func (nil) trace:winsock:WSASendTo fd=55, options=0 trace:winsock:WSASendTo -> 0 bytes
yes, what I need you to do is pipe this output to a file, something like cd ~/.wine/path/to/sins of a solar empire WINEDEBUG=+winsock wine foo.exe 2> winsock.txt bzip2 winsock.txt Then attach winsock.txt.bz2 to bugzilla. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #6 from Christian Sturm <athaba(a)inode.at> 2008-03-22 08:03:02 --- Created an attachment (id=11542) --> (http://bugs.winehq.org/attachment.cgi?id=11542) Trying to host This is what I get, when I try to host. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #7 from Christian Sturm <athaba(a)inode.at> 2008-03-22 08:04:42 --- Okay, here it is. BTW: When I try to join an other game it detects that the host uses an other mod, version and such things. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 Jeff Zaroyko <jeffzaroyko(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jeffzaroyko(a)gmail.com --- Comment #8 from Jeff Zaroyko <jeffzaroyko(a)gmail.com> 2008-03-24 01:23:44 --- (In reply to comment #6)
Created an attachment (id=11542) --> (http://bugs.winehq.org/attachment.cgi?id=11542) [details] Trying to host
This is what I get, when I try to host.
(In reply to comment #2)
It looks like connected udp sockets are not catered to in ws_sockaddr_u2ws after being called in WS2_recv. The msghdr struct contains a member msg_namelen which is zero when msg_name is not set after recv is called. This is the reason for the fixme's being printed, as a switch statement switches on uninitialized data.
An update: After some digging, I think, the "fixme:winsock:ws_sockaddr_u2ws Unknown address family" messages occur due to how tcp (not udp, I misspoke) is implemented on Linux and subsequently in wine an assumption made in WS2_recv that the msg_name member of the hdr parameter to recvmsg is always updated. for reference, this is from a recent Linux 2.6 source tree, net/ipv4/tcp.c /* According to UNIX98, msg_name/msg_namelen are ignored * on connected socket. I was just happy when found this 8) --ANK */ My tests lead me to believe that msg_name is not updated on connected tcp sockets, that is, connect a tcp socket, call send() on it to send some data, then call recvfrom - which will cause ws_sockaddr_u2ws to be entered and the reading of initialized data occurs and the default case is reached where the Unknown address family message is printed. In its current form, Linux appears to set the msg_namelen to zero if recvmsg is called on a connected tcp socket and msg_name is not updated with address details. This differs from Windows, according to my interpretation of msdn, calling recvfrom does guarantee that address details are always updated. I'm working on a test that can be added to the tests for ws2_32 and a possible fix also. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 Regin <cahrnah(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |cahrnah(a)gmail.com -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #9 from Scott Ritchie <scott(a)open-vote.org> 2008-05-13 19:23:22 --- Any progress? Thank you so much for your effort. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #10 from Jeff Zaroyko <jeffzaroyko(a)gmail.com> 2008-06-12 06:20:48 --- (In reply to comment #9)
Any progress?
Thank you so much for your effort.
Well, I have a test that reproduces bad codepath. After reading msdn a little more carefully, I discovered it says: "The lpFrom and lpFromlen parameters are ignored for connection-oriented sockets." Cross compiling my test shows that statement to be correct. Which agrees with what happens with regular Linux sockets more or less. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #11 from Jeff Zaroyko <jeffzaroyko(a)gmail.com> 2008-06-12 06:22:39 --- Created an attachment (id=13937) --> (http://bugs.winehq.org/attachment.cgi?id=13937) avoid updating lpFrom on connected sockets -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch --- Comment #12 from Austin English <austinenglish(a)gmail.com> 2008-06-12 07:39:30 --- Got a test case for this? -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #13 from Kai Blin <kai.blin(a)gmail.com> 2008-06-12 08:50:37 --- (In reply to comment #11)
Created an attachment (id=13937) --> (http://bugs.winehq.org/attachment.cgi?id=13937) [details] avoid updating lpFrom on connected sockets
Looks good. As Austin said, slap on a test case and send to wine-patches. Thanks. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #14 from Jeff Zaroyko <jeffzaroyko(a)gmail.com> 2008-06-12 21:11:05 --- (In reply to comment #13)
(In reply to comment #11)
Created an attachment (id=13937) --> (http://bugs.winehq.org/attachment.cgi?id=13937) [details] [details] avoid updating lpFrom on connected sockets
Looks good. As Austin said, slap on a test case and send to wine-patches.
Thanks.
I can't see a way to automatically test for the bug which my patch fixes, since hitting the default case when switching on uninitialized data doesn't modify the value-result argument lpFrom or change the return value, only a side effect occurs which is printing the fixme. My current test can only show that there's problem by observing the erroneous fixme messages when run interactively, not a pass fail. But, I can show in the test that lpFrom is ignored on a connected socket - confirming what msdn says. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #15 from Jeff Zaroyko <jeffzaroyko(a)gmail.com> 2008-06-12 21:11:38 --- Created an attachment (id=13961) --> (http://bugs.winehq.org/attachment.cgi?id=13961) test that lpFrom is not updated on connection-oriented sockets in ws2 recv calls -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #16 from Kai Blin <kai.blin(a)gmail.com> 2008-06-13 02:27:24 --- That's really good. Just remove the trailing whitespace line 97 of the patch adds, combine with the fix and send to wine-patches. Note that Alexandre might prefer to not commit it until Wine 1.0 is released. Thanks for digging into this. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 Dan Kegel <dank(a)kegel.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dank(a)kegel.com URL| |http://www.sinsofasolarempir | |e.com Severity|enhancement |normal --- Comment #17 from Dan Kegel <dank(a)kegel.com> 2008-06-13 10:17:00 --- Jeff posted the patch+test, http://winehq.org/pipermail/wine-patches/2008-June/055800.html -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |testcase -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #18 from cruciz <crucis(a)gmail.com> 2008-06-14 21:48:01 --- I have applied the patch and it has resolved the "Unknown address family" errors when i host or join a game. However the menus still hangs. The error returned is: fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004) Thanks for the effort -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 --- Comment #19 from Jeff Zaroyko <jeffzaroyko(a)gmail.com> 2008-06-14 22:17:36 --- (In reply to comment #18)
I have applied the patch and it has resolved the "Unknown address family" errors when i host or join a game.
However the menus still hangs. The error returned is: fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (98000004)
Thanks for the effort
That's good to hear - thanks for testing, the WSAIoctl message is a different bug which will need to be looked at and fixed before this bug report can be closed. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 Steve Dougherty <asksteved.com(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |asksteved.com(a)gmail.com --- Comment #20 from Steve Dougherty <asksteved.com(a)gmail.com> 2008-08-02 13:28:42 --- StarCraft: Brood War is also affected by a Winsock error when trying to play on LAN, something which worked before. Maybe Blizzard changed something, because I tried with 1.1.2 and 1.0.0... Its message is very similar: fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (9800000c) Should this be filed as a separate bug? -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Summary|Unable to use multiplayer in|Unable to use multiplayer in |Sins of a Solar Empire: |Sins of a Solar Empire: |WSAIoctl unsupported |unknown address family |WS_IOCTL cmd 98000004 + | |unknown address family | Target Milestone|--- |1.0.1 --- Comment #21 from Alexandre Julliard <julliard(a)winehq.org> 2008-10-16 07:57:46 --- Unknown address family bug fixed by 30e6b81dd1890ce21e9a5bb22d251887fbd8188a, marking fixed and nominating for 1.0.1. Please file new bugs for the ioctl issues. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=11640 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #22 from Alexandre Julliard <julliard(a)winehq.org> 2008-10-24 11:12:48 --- Closing bugs fixed in 1.1.7. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
participants (1)
-
wine-bugs@winehq.org