X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/c9a21871b37d415af1d0723715c43bbfae86c25a..d5201ad763c5a486832854443d946ff140902626:/NetworkController.m?ds=sidebyside diff --git a/NetworkController.m b/NetworkController.m index 24e8264..70994df 100755 --- a/NetworkController.m +++ b/NetworkController.m @@ -69,17 +69,20 @@ static NetworkController *sharedController; { if (!serverOn && status) { NSString *name = [[NSUserDefaults standardUserDefaults] stringForKey:@"sharedPlayerName"]; + NSPort *serverPort; unsigned char buffer; NSData *fullPass; //Turn on NS_DURING - serverPort = [[NSSocketPort alloc] initWithTCPPort:SERVER_PORT]; + serverPort = [[[NSSocketPort alloc] initWithTCPPort:SERVER_PORT] autorelease]; serverConnection = [[NSConnection alloc] initWithReceivePort:serverPort sendPort:serverPort]; - [serverConnection setRootObject:[[NetworkObject alloc] init]]; + clientProxy = [[NetworkObject alloc] init]; + [serverConnection setRootObject:clientProxy]; [serverConnection registerName:@"ITMTPlayerHost"]; NS_HANDLER - [[serverConnection rootObject] release]; + [clientProxy release]; + [serverConnection setRootObject:nil]; [serverConnection release]; [serverPort release]; ITDebugLog(@"Error starting server!"); @@ -107,8 +110,9 @@ static NetworkController *sharedController; } else if (serverOn && !status && [serverConnection isValid]) { //Turn off [service stop]; + [clientProxy invalidate]; [serverConnection registerName:nil]; - [[serverConnection rootObject] release]; + [serverConnection setRootObject:nil]; [serverConnection release]; ITDebugLog(@"Stopped server."); serverOn = NO; @@ -197,6 +201,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)]; @@ -213,6 +218,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]; @@ -228,7 +234,7 @@ static NetworkController *sharedController; } [testConnection release]; [testPort release]; - return YES; + return valid; } - (BOOL)isServerOn