[Bug 17432] Lan hosting/listening not working in warcraft iii.

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Jul 4 07:16:52 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=17432


Damjan Jovanovic <damjan.jov at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |damjan.jov at gmail.com
     Ever Confirmed|0                           |1




--- Comment #2 from Damjan Jovanovic <damjan.jov at gmail.com>  2009-07-04 07:16:51 ---
I've seen this too sometimes, time for detailed testing.

Ubuntu 9.04 + self compiled Wine 1.1.25, versus Windows Vista. Gigabit LAN
crossover cable between the 2 machines. Firewalls off. Ping and TCP connections
tested in both directions and work.

WARNING: this is a long post, the summary is at the bottom.

======================
Unpatched Wine hosting
======================
If Vista is already in the "Local Area Network" screen when Wine starts
hosting, the game can't be seen in Vista. However if you go back to the main
screen, then to "Local Area Network" screen again you can see the game, but
trying to join it gives "Unable to join the specified game. Please try again or
select a different game".

Same thing happens if Vista only tries to enter the "Local Area Network" screen
after Wine starts hosting.

The following FIXMEs appear in the Wine terminal when you start hosting,
whether you try to join Wine's game or not:

fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (9800000c)
fixme:winsock:WSAIoctl SIO_GET_EXTENSION_FUNCTION_POINTER
{b5367df1-cbac-11cf-95ca-00805f48a192}: stub
fixme:winsock:WSAIoctl SIO_GET_EXTENSION_FUNCTION_POINTER
{b5367df2-cbac-11cf-95ca-00805f48a192}: stub
fixme:winsock:WSAIoctl SIO_GET_EXTENSION_FUNCTION_POINTER
{b5367df0-cbac-11cf-95ca-00805f48a192}: stub

======================
Unpatched Wine joining
======================
Wine sees the game (even if already in the "Local Area Network" screen),
successfully joins, and plays!

Same FIXMEs from before though - maybe they don't break anything?

====================
Patched Wine hosting
====================
With the patch from bug #9787 applied to Wine, Vista only sees the game when
first entering the "Local Area Network" screen like before, but this time it
can join and plays fine!

This time there is only this FIXME:
fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (9800000c)

So maybe it's the other FIXMEs that break it (too), not just bug #9787?

====================
Patched Wine joining
====================
With the patch from bug #9787 applied to Wine, Wine can see the game, does join
and plays fine!

Also only this FIXME:
fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (9800000c)

========================
Visibility investigation
========================
Why does Vista only see new games when entering the "Local Area Network"
screen?

Tried switching off my 3G card on Linux so I only have 1 network interface =>
didn't help.

tcpdump and Wireshark seem to not capture a single packet. Maybe some
networking problem that stops packets from being generated in the first place?

In a +winsock trace we see this getting tried every few seconds:

trace:winsock:WSASendTo socket 216c, wsabuf 0x33f528, nbufs 1, flags 0, to
0x33fb70, tolen 16, ovl (nil), func (nil)
trace:winsock:WSASendTo fd=22, options=0
warn:winsock:wsaErrno errno 101, (Network is unreachable).
warn:winsock:WSASendTo  -> ERROR 10051

Adding some more tracing to the WSASendTo call we see where it's trying to
send:
trace:winsock:WSASendTo to = 255.255.255.255

$ ping 255.255.255.255
connect: Network is unreachable

So what if we add a route to that network?

$ sudo route add -net 255.255.255.255 netmask 255.255.255.255 dev eth0

and to check:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
255.255.255.255 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

Vista now sees Wine hosted games made while already in the "Local Area Network"
screen just fine!

==================
Other known issues
==================
Don't even try to play this over WiFi - it doesn't work on Vista itself half
the time (some people can't listen/join, etc.). Also firewalls often break this
game (among almost everything else :-) so they were off for my test.

=======
Summary
=======
2 problems here:

1. Windows can only see Wine hosted games when it re-enters the "Local Area
Network" screen.
  - Need to route 255.255.255.255/32 to the local LAN in Linux

2. Windows can't connect to visible Wine hosted games.
  - Unclear, the patch for #9787 fixes it, but it could also be Wine's lack of
support for the SIO_GET_EXTENSION_FUNCTION_POINTER ioctl or something else.

Someone care to test these workarounds with a Mac?

-- 
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.



More information about the wine-bugs mailing list