Re: Regarding the bonjour services
Re: Regarding the bonjour services
- Subject: Re: Regarding the bonjour services
- From: Marc Krochmal <email@hidden>
- Date: Thu, 2 Jun 2005 11:48:21 -0700
On Jun 2, 2005, at 5:21 AM, Phill Kelley wrote:
At 16:17 -0700 01/06/2005, Marc Krochmal wrote:
When you say everything goes wrong, is "everything" referring to
NSNetService resolve, or is something else going wrong? NSNetService
resolve was rewritten in Tiger to be implemented using
CFNetServiceResolveWithTimeout, which has different callback behavior
than CFNetServiceResolve. If you'd like to get the old behavior, or
you need to work around bugs in CFNetServiceResolveWithTimeout, you
can temporarily switch to CFNetServiceResolve.
I've tried both (assuming that "resolve" and "resolveWithTimeout"
amount to
the same thing - I try to avoid things that begin with CF,
heretical though
that might be) and the behavior is slightly different but still not
the
same as with all-Panther.
Both "resolve" and "resolveWithTimeout" use
CFNetServiceResolveWithTimeout() in Tiger, so the behavior will be
the same.
The issues are slightly tangled up with service discovery in that if
Bonjour doesn't inform me that a service has appeared then,
clearly, I'm
not going to try to resolve it. With all-Panther, it doesn't seem
to matter
what I do to the various servers. I can launch and quit gracefully,
I can
force-quit, I can pull cables, etc and Bonjour will always work out
what is
going on and send me the appropriate messages. With Tiger in the mix,
sometimes I don't get told when a service has appeared, sometimes I
don't
get told when a service has been withdrawn, etc.
OK, I haven't seen anything like that in Tiger. I'd recommend you
run the third-party Rendezvous Browser application, which is great
for debugging Bonjour issues.
<http://www.tildesoft.com/Programs.html>
And then there's this
nonsense with IPv6 addresses being passed to me even though I've
set IPv6
to off on every machine and every interface. I wouldn't really care
if I
also got IPv4 addresses but those don't arrive a lot of the time
(and, yes,
I am enumerating the addresses array).
That behavior isn't new in Tiger. CFNetServiceResolve would always
return IPv6 addresses in Panther, even when IPv6 was turned off. You
should always be prepared to handle IPv6 addresses.
<http://developer.apple.com/qa/qa2001/qa1298.html>
I agree that if it's *only* returning IPv6 addresses, then that's a bug.
Anyway, I have spent the day putting a test together. I expect to
be able
to file a radar tomorrow.
Great. Thanks.
-Marc
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden