taironebrito / iwidarwin

Automatically exported from code.google.com/p/iwidarwin
0 stars 0 forks source link

Outgoing multicast dns (UDP) not working - incoming only - prevents iTunes music sharing and other services #75

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?

1. sudo tcpdump -i en1 -Unq port 5353
2. Start iTunes - it should send out an mDNS packet to 224.0.0.251 udp port 5353
3. No such output is observed in tcpdump
4. Start iTunes on another computer on the local wifi network.
5. Observe incoming mdns packets from the remote iTunes, but no response from 
the iTunes 
running locally

What version of iwi are you using?
latest svn from rev 1195

Use the getlogscommand (see downloads) script to capture the driver logs and 
post it here.

Original issue reported on code.google.com by prashant...@gmail.com on 17 Aug 2008 at 4:44

Attachments:

GoogleCodeExporter commented 8 years ago
Forgot to mention system info:  I'm using 10.5.1, custom compiled kernel, on a 
PentiumM processor with intel 
915 mobo.

Intel PRO 2200B/G wifi card, using ipw2200 driver. I have the driver sources 
and can apply any patches and test, 
if needed.

Original comment by prashant...@gmail.com on 17 Aug 2008 at 4:46

GoogleCodeExporter commented 8 years ago
I did some extensive debugging and have identified the problem - it's not 
directly to do with the driver code, 
but indirectly related to it.

What happens is that the en1 adapter is created by the driver *after* 
mDNSResponder daemon has loaded. So 
the daemon has no knowledge of that interface, and doesn't send out the 
multicast packets on it. Killing the 
daemon after the driver has loaded will auto-start it again, and this time it 
sees the en1 adapter too, and 
everything works fine.

Solution: A way to load the iwi2200.kext before mDNSResponder has loaded. I 
tried adding 
OSBundleRequirement to Root so it loads before even BSD root is mounted, but it 
didn't work for some 
reason.

Original comment by prashant...@gmail.com on 18 Aug 2008 at 9:06

GoogleCodeExporter commented 8 years ago
can you try to run a macro instead of nsgui?
nsgui is loaded after mac os boot
maybe make it reload mDNSResponder and nsgui
if you do so please attach it here so other users can test it
i think this can also fix some association bugs people are reporting

Original comment by jalav...@gmail.com on 30 Aug 2008 at 12:00

GoogleCodeExporter commented 8 years ago
Hi, I'll give it a try - the most obvious and easiest way to fix this is to 
run "killall mDNSResponder" with root privilege after the card has associated 
with a 
network and been assigned an IP address. I'll try to modify the code and attach 
a 
patch.

However the better approach is to try to make the kext load with 
OSBundleRequired 
set to Root or NetworkRoot (cant remember exact string).

Original comment by prashant...@gmail.com on 6 Sep 2008 at 1:45

GoogleCodeExporter commented 8 years ago
Hi,

After some investigation, I have come to this conclusion: the 'hackish' 
workaround I posted above is not only 
inelegant, it's also not required.

I switched to using a pre-linked mach_kernel, which contains the drivers inside 
it. Because of this, the iwi 
driver loads up before any of the system daemons are launched, and so 
mDNSResponder can add the iwi 
network interface properly, and everything works as expected.

So - I don't know what prevents iwi2200 from loading with OSBundleRequirement 
set to Root. If you could 
debug and fix that so that it loads properly with either Root or NetworkRoot 
(as should any network driver), 
that will be great, and arguably the better long-term solution.

Original comment by prashant...@gmail.com on 18 Sep 2008 at 6:03

GoogleCodeExporter commented 8 years ago

Original comment by jalav...@gmail.com on 12 Jun 2009 at 1:03