I am not sure if this is a problem unique to me or not but under 10.5 [[NSHost currentHost] name] or [[[NSProcessInfo] processInfo] hostname] were quick and easy ways to get an mDNS friendly hostname such as imac-2.local

On 10.6 I find that both these combinations block badly (NSProcessInfo merely defers to NSHost I think).

The list has a few references to the possibility of these blocking but I never encountered it until now. According to a stack sample getnameinfo() seems to be the library call that is blocking.
_mdns_query_mDNSResponder seems to be the actual blocking call.

Anyone else seeing this behaviour?

There seem to be two alternatives:

NSString *name = NSMakeCollectable(SCDynamicStoreCopyLocalHostName (NULL));

This gives the correct mDNS friendly hostname but omits the local pseudo domain.

Otherwise this seems suitable:

char hostname[_POSIX_HOST_NAME_MAX + 1];
gethostname(hostname, _POSIX_HOST_NAME_MAX);
name = [NSString stringWithCString:hostname encoding:NSUTF8StringEncoding];

Jonathan Mitchell

Developer
http://www.mugginsoft.com





_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to