diff --git a/macosx/BonjourController.h b/macosx/BonjourController.h index 66d044f4a..92d162f7e 100644 --- a/macosx/BonjourController.h +++ b/macosx/BonjourController.h @@ -30,6 +30,7 @@ } + (BonjourController *) defaultController; ++ (BOOL) defaultControllerExists; - (void) startWithPort: (int) port; - (void) stop; diff --git a/macosx/BonjourController.m b/macosx/BonjourController.m index 6a9f8cd2f..f17438929 100644 --- a/macosx/BonjourController.m +++ b/macosx/BonjourController.m @@ -39,6 +39,11 @@ BonjourController * fDefaultController = nil; return fDefaultController; } ++ (BOOL) defaultControllerExists +{ + return fDefaultController != nil; +} + - (void) dealloc { [fService release]; diff --git a/macosx/Controller.m b/macosx/Controller.m index a3a99a745..3305bb0e9 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -671,7 +671,8 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy fQuitting = YES; //stop the Bonjour service - [[BonjourController defaultController] stop]; + if ([BonjourController defaultControllerExists]) + [[BonjourController defaultController] stop]; //stop blocklist download if ([BlocklistDownloader isRunning]) @@ -1472,7 +1473,6 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy [torrent closeRemoveTorrent: deleteData]; }]; - [fTableView beginUpdates]; beganUpdate = YES; } diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index d093a828b..69c072f95 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -1050,7 +1050,10 @@ if ([fDefaults boolForKey:@"RPC"] && [fDefaults boolForKey: @"RPCWebDiscovery"]) [[BonjourController defaultController] startWithPort: [fDefaults integerForKey: @"RPCPort"]]; else - [[BonjourController defaultController] stop]; + { + if ([BonjourController defaultControllerExists]) + [[BonjourController defaultController] stop]; + } } - (void) updateRPCWhitelist