From 7c8b58558998c9369bbf1953c49a883eabea5e73 Mon Sep 17 00:00:00 2001 From: Kent Sutherland Date: Thu, 4 Dec 2003 23:23:10 +0000 Subject: [PATCH] Fixed a crash when unchecking share this player. Also trying to make the server disconnect people who are connected already. --- MainController.m | 5 ++++- NetworkController.m | 5 +++-- NetworkObject.h | 5 ++++- NetworkObject.m | 13 ++++++++++++- libValidate.a | Bin 8032 -> 8032 bytes 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/MainController.m b/MainController.m index 67ce65d..fbeae9d 100755 --- a/MainController.m +++ b/MainController.m @@ -290,6 +290,9 @@ static MainController *sharedController; { if ([networkController isConnectedToServer]) { [statusItem setMenu:[menuController menu]]; + if ([[networkController networkObject] remote] == nil) { + [self networkError:nil]; + } } if ( [self songChanged] && (timerUpdating != YES) ) { @@ -997,7 +1000,7 @@ static MainController *sharedController; if ([networkController checkForServerAtHost:[df stringForKey:@"sharedPlayerHost"]]) { ITDebugLog(@"Remote server found."); [timer invalidate]; - if (![networkController isConnectedToServer]) { + if (![networkController isServerOn] && ![networkController isConnectedToServer]) { [[StatusWindowController sharedController] showReconnectQueryWindow]; } } else { diff --git a/NetworkController.m b/NetworkController.m index 49b8321..1d180c6 100755 --- a/NetworkController.m +++ b/NetworkController.m @@ -112,7 +112,6 @@ static NetworkController *sharedController; [service stop]; [serverConnection registerName:nil]; [serverConnection release]; - [clientProxy release]; ITDebugLog(@"Stopped server."); serverOn = NO; } @@ -200,6 +199,7 @@ static NetworkController *sharedController; NSConnection *testConnection; NSSocketPort *testPort; NetworkObject *tempProxy; + BOOL valid; ITDebugLog(@"Checking for shared remote at %@.", host); if (fullPass) { [fullPass getBytes:&buffer range:NSMakeRange(6, 4)]; @@ -216,6 +216,7 @@ static NetworkController *sharedController; [testConnection setReplyTimeout:2]; tempProxy = (NetworkObject *)[testConnection rootProxy]; [tempProxy serverName]; + valid = [tempProxy isValid]; NS_HANDLER ITDebugLog(@"Connection to host failed: %@", host); [testConnection release]; @@ -231,7 +232,7 @@ static NetworkController *sharedController; } [testConnection release]; [testPort release]; - return YES; + return valid; } - (BOOL)isServerOn diff --git a/NetworkObject.h b/NetworkObject.h index 2222414..0e185d4 100755 --- a/NetworkObject.h +++ b/NetworkObject.h @@ -21,11 +21,14 @@ @interface NetworkObject : NSObject { - BOOL _authenticated; + BOOL _authenticated, _valid; } - (ITMTRemote *)remote; - (NSString *)serverName; - (BOOL)requiresPassword; - (BOOL)sendPassword:(NSData *)password; + +- (void)invalidate; +- (BOOL)isValid; @end diff --git a/NetworkObject.m b/NetworkObject.m index 4473970..a29c3f5 100755 --- a/NetworkObject.m +++ b/NetworkObject.m @@ -24,6 +24,7 @@ - (id)init { if ( (self = [super init]) ) { + _valid = YES; if (![self requiresPassword]) { _authenticated = YES; } else { @@ -35,7 +36,7 @@ - (ITMTRemote *)remote { - if (_authenticated) { + if (_authenticated && _valid) { return [[MainController sharedController] currentRemote]; } else { return nil; @@ -66,4 +67,14 @@ } } +- (void)invalidate +{ + _valid = NO; +} + +- (BOOL)isValid +{ + return _valid; +} + @end diff --git a/libValidate.a b/libValidate.a index f825a30613d82254ee384216b62f6ed852ee9f34..71a8a250e80170183408479a1e238eaa9395af3a 100755 GIT binary patch delta 28 jcmaE0_rPv~jG(E7fq{jYf`X}mp@M>fk%7WSU1NCwc_{}S delta 28 gcmaE0_rPv~jG&3Bg{h^nf`X}mp#qrPsB0__0D2V%H~;_u -- 2.20.1