https://bugs.winehq.org/show_bug.cgi?id=38569
Bug ID: 38569 Summary: PES2015 won't connect to online services Product: Wine Version: 1.7.42 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winsock Assignee: wine-bugs@winehq.org Reporter: c10ud.dev@gmail.com Distribution: ---
The bug is reproducible with KONAMI's online test tool: http://www.konami.jp/we/online/2015/_tool/eu/PortChk_PC.zip
Point it at an open port (TCP+UDP) in your network configuration and it should give a positive result.
Instead, it says UDP blocked (tested with ubuntu trusty and latest wine 1.7.4x).
WINEDEBUG=+winsock wine PortChk.exe
shows
trace:winsock:WS_gethostbyname "pes15-pc-gate.winning-eleven.net" ret 0x1ce758 trace:winsock:WS_socket af=2 type=1 protocol=0 trace:winsock:WSASocketA af=2 type=1 protocol=0 protocol_info=(nil) group=0 flags=0x1 trace:winsock:WSASocketW af=2 type=1 protocol=0 protocol_info=(nil) group=0 flags=0x1 trace:winsock:WSASocketW created 0090 trace:winsock:WS_connect socket 0090, ptr 0x13de878 { family AF_INET, address 210.148.52.131, port 15800 }, length 16 warn:winsock:wsaErrno errno 115, (Operation now in progress). trace:winsock:WS_closesocket (socket 0090) -> 0
and nothing else. In windows, network testing continues and produces relevant output. I currently have no clue if another wine component is/may be involved.
I suspect some weird issue with TCP and winsock (on the same machine, same ports, etc. but through a Windows8 VM, it works OK)
https://bugs.winehq.org/show_bug.cgi?id=38569
Riccardo c10ud.dev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |c10ud.dev@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=38569
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|winsock |-unknown Ever confirmed|0 |1
--- Comment #1 from Bruno Jesus 00cpxxx@gmail.com --- Confirming in wine-git but I don't think it's a winsock bug. The application is simply opening a TCP socket to the game host and closing it, and the connect call works. Then it does some iphlpapi stuff and gives up.
https://bugs.winehq.org/show_bug.cgi?id=38569
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=38569
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.konami.jp/we/onl | |ine/2015/_tool/eu/PortChk_P | |C.zip
https://bugs.winehq.org/show_bug.cgi?id=38569
--- Comment #2 from Riccardo c10ud.dev@gmail.com --- Created attachment 51464 --> https://bugs.winehq.org/attachment.cgi?id=51464 WINEDEBUG=+iphlpapi
https://bugs.winehq.org/show_bug.cgi?id=38569
--- Comment #3 from Riccardo c10ud.dev@gmail.com --- (In reply to Riccardo from comment #2)
Created attachment 51464 [details] WINEDEBUG=+iphlpapi
Sorry for the noise, but yes Bruno, it looks like you're right, it doesn't seem related to winsock.
https://bugs.winehq.org/show_bug.cgi?id=38569
Riccardo c10ud.dev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |iphlpapi
https://bugs.winehq.org/show_bug.cgi?id=38569
--- Comment #4 from Riccardo c10ud.dev@gmail.com --- (In reply to Riccardo from comment #3)
(In reply to Riccardo from comment #2)
Created attachment 51464 [details] WINEDEBUG=+iphlpapi
Sorry for the noise, but yes Bruno, it looks like you're right, it doesn't seem related to winsock.
I found the issue:
DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize, BOOL bOrder)
the pIpAddrTable->table[i].wType parameter is not initialized (0) while programs expect a good value (see https://msdn.microsoft.com/en-us/library/windows/desktop/aa366845%28v=vs.85%...)
My workaround is to force it to 0x1 (it's enough to fix this app and PES2015 online, it seems, at least for the iphlpapi bug, now I'll see if there are any other issues). A better solution is appreciated.
Greets
https://bugs.winehq.org/show_bug.cgi?id=38569
--- Comment #5 from Riccardo c10ud.dev@gmail.com --- OK, now that the basic stuff works, the game needs this unimplemented function (iphlpapi):
@ stdcall ConvertInterfaceLuidToGuid( ptr ptr )
DWORD WINAPI ConvertInterfaceLuidToGuid(const NET_LUID *InterfaceLuid, GUID *InterfaceGuid) { FIXME("(handle %d): stub\n", *InterfaceLuid); return NO_ERROR; }
this is just enough to make the real game run (at least to connect to another party and play). I did not test hosting a game yet. This function looks simple so maybe a proper implementation can be easily done.
Then, this appears: fixme:wlanapi:WlanOpenHandle (2, (nil), 0x1235d4e0, 0x1a0459c8) stub
Also, this sometimes appear in debug: err:winsock:interface_bind Failed to bind to interface, receiving broadcast packets will not work on socket XXXX.
https://bugs.winehq.org/show_bug.cgi?id=38569
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|PES2015 won't connect to |PES2015 won't connect to |online services |online services | |(GetIpAddrTable needs to | |fill wType parameter)
--- Comment #6 from Bruno Jesus 00cpxxx@gmail.com --- Great finding =) So let's target this bug about the wType parameter problem, the ConvertInterfaceLuidToGuid deserve it's own bug.
If the game works even with those messages then they are not a real problem. The interface_bind error happens if your kernel is older than 3.13 (AFAIR).
https://bugs.winehq.org/show_bug.cgi?id=38569
--- Comment #7 from Riccardo c10ud.dev@gmail.com --- (In reply to Bruno Jesus from comment #6)
Great finding =) So let's target this bug about the wType parameter problem, the ConvertInterfaceLuidToGuid deserve it's own bug.
If the game works even with those messages then they are not a real problem. The interface_bind error happens if your kernel is older than 3.13 (AFAIR).
Bruno, I think it can safely be initialized to 0x1 since now it just uses bogus values.
As for the kernel I'm with Linux 3.16.0-36-generic #48~14.04.1-Ubuntu SMP Wed Apr 15 13:11:28 UTC 2
https://bugs.winehq.org/show_bug.cgi?id=38569
--- Comment #8 from Bruno Jesus 00cpxxx@gmail.com --- Should be fixed by http://source.winehq.org/git/wine.git/?a=commit;h=084bcaa76b4e8c02b5dbc2f9f4...
https://bugs.winehq.org/show_bug.cgi?id=38569
--- Comment #9 from Riccardo c10ud.dev@gmail.com --- (In reply to Bruno Jesus from comment #8)
Should be fixed by http://source.winehq.org/git/wine.git/?a=commit; h=084bcaa76b4e8c02b5dbc2f9f400d25271067874
Yes, that fixes the test tool, however in order to fix the original issue ConvertInterfaceLuidToGuid must be implemented (or at least stubbed).
Thanks Bruno for getting the fix upstream so fast!
https://bugs.winehq.org/show_bug.cgi?id=38569
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |084bcaa76b4e8c02b5dbc2f9f40 | |0d25271067874 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #10 from Bruno Jesus 00cpxxx@gmail.com --- Thanks for testing, we have a one problem per bug rule so please open a new bug report for ConvertInterfaceLuidToGuid.
https://bugs.winehq.org/show_bug.cgi?id=38569
--- Comment #11 from Riccardo c10ud.dev@gmail.com --- (In reply to Bruno Jesus from comment #10)
Thanks for testing, we have a one problem per bug rule so please open a new bug report for ConvertInterfaceLuidToGuid.
Alright, done: https://bugs.winehq.org/show_bug.cgi?id=38576
https://bugs.winehq.org/show_bug.cgi?id=38569
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.43.