Merge pull request #384 from qmfrederik/dummy-nsnetservices

This commit is contained in:
Gregory Casamento 2024-04-03 23:49:03 -04:00 committed by GitHub
commit 3c1db49f4f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 49 additions and 11 deletions

View file

@ -270,6 +270,7 @@ NSMeasurement.m \
NSMetadata.m \ NSMetadata.m \
NSMetadataAttributes.m \ NSMetadataAttributes.m \
NSMethodSignature.m \ NSMethodSignature.m \
NSNetServices.m \
NSNotification.m \ NSNotification.m \
NSNotificationCenter.m \ NSNotificationCenter.m \
NSNotificationQueue.m \ NSNotificationQueue.m \
@ -391,8 +392,7 @@ endif
ifeq ($(GNUSTEP_BASE_HAVE_MDNS), 1) ifeq ($(GNUSTEP_BASE_HAVE_MDNS), 1)
BASE_MFILES += \ BASE_MFILES += \
GSMDNSNetServices.m \ GSMDNSNetServices.m
NSNetServices.m
endif endif
ifeq ($(GNUSTEP_BASE_HAVE_AVAHI), 1) ifeq ($(GNUSTEP_BASE_HAVE_AVAHI), 1)
@ -400,8 +400,7 @@ ifeq ($(GNUSTEP_BASE_HAVE_AVAHI), 1)
GSAvahiNetService.m \ GSAvahiNetService.m \
GSAvahiNetServiceBrowser.m \ GSAvahiNetServiceBrowser.m \
GSAvahiClient.m \ GSAvahiClient.m \
GSAvahiRunLoopIntegration.m \ GSAvahiRunLoopIntegration.m
NSNetServices.m
endif endif
ifeq ($(WITH_FFI),libffi) ifeq ($(WITH_FFI),libffi)

View file

@ -31,6 +31,7 @@
#import "Foundation/NSArray.h" #import "Foundation/NSArray.h"
#import "Foundation/NSData.h" #import "Foundation/NSData.h"
#import "Foundation/NSDictionary.h" #import "Foundation/NSDictionary.h"
#import "Foundation/NSException.h"
#import "Foundation/NSHost.h" #import "Foundation/NSHost.h"
#import "Foundation/NSStream.h" #import "Foundation/NSStream.h"
#import "Foundation/NSString.h" #import "Foundation/NSString.h"
@ -48,7 +49,7 @@ static Class concreteBrowserClass;
abstractServiceClass = self; abstractServiceClass = self;
# if GS_USE_AVAHI==1 # if GS_USE_AVAHI==1
concreteServiceClass = [GSAvahiNetService class]; concreteServiceClass = [GSAvahiNetService class];
# else # elif GS_USE_MDNS==1
concreteServiceClass = [GSMDNSNetService class]; concreteServiceClass = [GSMDNSNetService class];
# endif # endif
} }
@ -58,7 +59,14 @@ static Class concreteBrowserClass;
{ {
if (self == abstractServiceClass) if (self == abstractServiceClass)
{ {
return [concreteServiceClass allocWithZone: zone]; if (concreteServiceClass != nil)
{
return [concreteServiceClass allocWithZone: zone];
}
else
{
return nil;
}
} }
return [super allocWithZone: zone]; return [super allocWithZone: zone];
} }
@ -77,7 +85,15 @@ static Class concreteBrowserClass;
type: (NSString *) type type: (NSString *) type
name: (NSString *) name name: (NSString *) name
{ {
return [self subclassResponsibility: _cmd]; if (concreteServiceClass != nil)
{
return [self subclassResponsibility: _cmd];
}
else
{
[self release];
return nil;
}
} }
- (id) initWithDomain: (NSString *) domain - (id) initWithDomain: (NSString *) domain
@ -85,7 +101,15 @@ static Class concreteBrowserClass;
name: (NSString *) name name: (NSString *) name
port: (NSInteger) port port: (NSInteger) port
{ {
return [self subclassResponsibility: _cmd]; if (concreteServiceClass != nil)
{
return [self subclassResponsibility: _cmd];
}
else
{
[self release];
return nil;
}
} }
- (void) removeFromRunLoop: (NSRunLoop *) aRunLoop - (void) removeFromRunLoop: (NSRunLoop *) aRunLoop
@ -394,7 +418,7 @@ static Class concreteBrowserClass;
abstractBrowserClass = self; abstractBrowserClass = self;
# if GS_USE_AVAHI==1 # if GS_USE_AVAHI==1
concreteBrowserClass = [GSAvahiNetServiceBrowser class]; concreteBrowserClass = [GSAvahiNetServiceBrowser class];
# else // Not Avahi (=GS_USE_MDNS) # elif GS_USE_MDNS==1
concreteBrowserClass = [GSMDNSNetServiceBrowser class]; concreteBrowserClass = [GSMDNSNetServiceBrowser class];
# endif // GS_USE_AVAHI # endif // GS_USE_AVAHI
} }
@ -404,14 +428,29 @@ static Class concreteBrowserClass;
{ {
if (self == abstractBrowserClass) if (self == abstractBrowserClass)
{ {
return [concreteBrowserClass allocWithZone: zone]; if (concreteBrowserClass != nil)
{
return [concreteBrowserClass allocWithZone: zone];
}
else
{
return nil;
}
} }
return [super allocWithZone: zone]; return [super allocWithZone: zone];
} }
- (id) init - (id) init
{ {
return [super init]; if (concreteBrowserClass != nil)
{
return [super init];
}
else
{
[self release];
return nil;
}
} }