diff --git a/ChangeLog b/ChangeLog index 1be3109df..2916d7d8c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-12-01 Richard Frith-Macdonald + + * Source/NSMessagePortNameServer.m: Tolerate '*' host name. + * Source/NSConnection.m: Clarify documentation slightly. + 2009-11-27 Richard Frith-Macdonald * Source/NSNotificationQueue.m: Rewrite queue handling to attempt to diff --git a/Source/NSConnection.m b/Source/NSConnection.m index 079c54e38..825fb3c50 100644 --- a/Source/NSConnection.m +++ b/Source/NSConnection.m @@ -505,10 +505,10 @@ static NSLock *cached_proxies_gate = nil; *

*

* If host is nil or an empty string, - * the host is taken to be the local machine. + * the host is taken to be the local machine.
* If it is an asterisk ('*') then the nameserver checks all * hosts on the local subnet (unless the nameserver is one - * that only manages local ports). + * that only manages local ports).
* In the GNUstep implementation, the local host is searched before * any other hosts. *

diff --git a/Source/NSMessagePortNameServer.m b/Source/NSMessagePortNameServer.m index bb9520dab..e06a6aa8c 100644 --- a/Source/NSMessagePortNameServer.m +++ b/Source/NSMessagePortNameServer.m @@ -323,13 +323,16 @@ static void clean_up_names(void) if ([host length] > 0) { - [NSException raise: NSInvalidArgumentException - format: @"Attempt to contact a named host using a " + NSLog(@"Attempt to contact a named host using a " @"message port name server. This name server can only be used " @"to contact processes owned by the same user on the local host " - @"(host name must be an empty string). To contact processes " + @"(host name must be nil or an empty string). To contact processes " @"owned by other users or on other hosts you must use an instance " - @"of the NSSocketPortNameServer class."]; + @"of the NSSocketPortNameServer class."); + if (NO == [host isEqualToString: @"*"]) + { + return nil; + } } path = [[self class] _pathForName: name];